`

python项目(服务器报错及处理方法)

阅读更多

Python是面向对象语言,所以程序抛出的异常也是类
(一)常见的Python异常有:
NameError 尝试访问一个没有申明的变量
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
AttributeError     尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形
UnboundLocalError  未绑定本地错误

 

(二)以下是我最近遇到的问题及解决方案:

①python局部/本地变量引用赋值问题

做项目时刷新网页服务器提示报错:UnboundLocalError: local variable 'user_sub' referenced before assignment   

所以尝试测试出解决方案

服务器提示(UnboundLocalError:赋值前引用本地变量'user_sub')

def cart(request):
    user_sub = 0 //修复时加上此句,给user_sub赋值即可解决
    cartModel = CartModel.objects.all()
    total = 0
    for commodity in CartModel.objects.all():
        total += commodity.count
        total = int(total)
        user_sub = CartModel.sub_list(commodity, CartModel.objects.all())
        commodity.save()
    return render(request, 'cart/cart.html', {'cartModel':cartModel, 'total':total, 'user_sub':user_sub})

 刚开始我给user_sub加了一个global user_sub全局变量属性,随后服务器提示user_sub is not defind。

经正确改正后,我认为for循环中属于一个范围,有对user_sub进行赋值。但在外面看不到,相当于变量user_sub赋值前引用本地变量user_sub。

 

②服务器报错:AttributeError: 'int' object has no attribute 'save'(属性错误:'int'对象没有属性'保存)

根据服务器提示,我找到了报错行,该行功能计算商品价格

  total += commodity.count
  total = int(total)
  count = commodity.count
  price = commodity.price
commodity.money = count * price
commodity.save()

 修改后发现原来是行未对齐,将末尾两行缩进对齐即可.

**注意**:这里提醒了python先后级与行对齐有关,有许多小问题也都是由于行对齐引发

 

③ValueError: invalid literal for int() with base 10: '可口可乐'

(意为值错误:int()的无效字面值为10:'可口可乐')

传给函数的参数类型不正确,比如给int()函数传入字符串形,正是我犯的错误

product_id = request.POST['id']  //这是我POST请求发送的id
//现在我检查输出下发现传过来的id是汉字,所以去改正POST发送数据即可
 (这里要注意:id不能为汉字)

 

④引用JS文件问题

服务器报错:Uncaught ReferenceError: connect is not defined(未考虑参考错误:连接未定义)

这是引用文件问题,加上标头引入即可,模版页面键入

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
 //因为$是在jquery.js中定义

 

⑤HTML模版页面计算报错

item.count是商品数量,优惠条件是买三赠一

模型中价格计算式为

def act_price(self):
        self.tot_money = (self.count - int(self.count / 3)) * self.price
        self.save()

赠送数量可在HTML页面计算

刚开始我写成

<span class='gift_num'>{% widthratio item.count 3 %}</span>

运行后服务器报错:(TemplateSyntaxError("widthratio takes at least three arguments")

意思为TemplateSyntaxError(“widthratio至少需要三个参数”),所以加上参数1即可

正确写法为

<span class='gift_num'>{% widthratio item.count 3 1 %}</span>  //widthratio宽度比

 

(三)补充:Django模版算法

<加法>:{{ value|add:10}}

value=5,则返回15

<减法>:{{value|add:-10}}

value=5,则返回-5,减法就是加一个负数

<乘法>:{%  widthratio 5 1 100 %}

(注意:该算法会四舍五入,不适合小数点运算)

表示5/1 *100,返回500,widthratio需要三个参数,它会使用 参数1/参数2*参数3,所以要进行乘法的话,就将参数2设为1即可

<除法>:{%  widthratio 5 100 1 %}

表示:5/100*1,返回0.05,只需要将第三个参数设置为1即可 

(注意:参数个数不符合时,服务器会报错参数个数异常))

分享到:
评论

相关推荐

    Python使用googletrans报错的解决方法

    在Python编程中,`googletrans` 是一个广泛使用的第三方库,它提供了与Google Translate API的接口,用于实现语言之间的文本翻译。然而,由于Google经常更新其服务,有时会导致`googletrans`库出现兼容性问题,进而...

    Python服务器运行代码报错ModuleNotFoundError的解决办法.pdf

    在Python开发过程中,遇到`ModuleNotFoundError`是一个常见的问题,尤其当代码从本地环境迁移到服务器环境运行时。这通常是因为Python解释器无法在标准的模块搜索路径中找到指定的模块。具体地,服务器的文件系统...

    python实现TCP服务器

    3、实现客户端处理类,服务器能通过类对象与客户端进行数据交互 4、实现心跳保活机制(客户端测试帧按16进制发送数据 46 72 61 6d 65 00 00 00 05 00 00 00 48 65 61 72 74) 5、实现帧沾包问题处理,帧格式 包头+...

    python 服务器运行代码报错ModuleNotFoundError的解决办法

    主要介绍了python 服务器运行代码报错ModuleNotFoundError的解决办法,帮助大家排除错误,正确的运行代码,感兴趣的朋友可以了解下

    解决Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模”

    在Python编程环境中,OpenCV是一个广泛使用的计算机视觉库,提供了许多图像处理和计算机视觉功能。然而,当你尝试导入OpenCV的cv2模块时,如果出现“DLL load failed while importing cv2: 找不到指定的模块”这样的...

    解决python运行启动报错问题

    ### 解决Python运行启动报错问题 在使用Python进行开发或执行...通过以上方法,您可以轻松地解决Python启动时报错的问题,并学会如何使用Python内置的简单HTTP服务器模块。希望这些知识能够帮助您更好地进行开发工作。

    Python升级导致yum、pip报错的解决方法

    本文主要给大家介绍了因Python升级导致yum、pip报错的解放方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 原因: yum是Python写的。服务器上Python版本过低,升级为2.7,而yum/pip未升级...

    解决Python requests 报错方法集锦

    ### 解决Python `requests` 报错方法集锦 #### 概述 本文将详细介绍解决Python `requests` 库在发起HTTP(S)请求时遇到的一些常见错误及其解决方案。`requests` 是一个流行的Python库,用于简化HTTP请求。然而,在...

    Python连接Oracle之环境配置、实例代码及报错解决方法详解

    在本文中,我们将深入探讨如何使用Python连接到Oracle数据库,包括必要的环境配置、实例代码以及可能出现的错误处理方法。首先,我们需要确保拥有正确的环境来运行Python和Oracle客户端。 1. **Oracle客户端环境...

    PyCharm 配置远程python解释器和在本地修改服务器代码

    对于需要处理大量计算任务或依赖于特定硬件资源(例如GPU)的项目,本地开发环境往往无法满足需求。在这种情况下,开发者通常会将代码部署到配备了相应资源的远程服务器上进行处理。然而,频繁的手动上传和下载不仅...

    MySQL-python报错的修改

    6. **兼容性问题**: `MySQL-python`库可能与较新的MySQL版本不兼容,因为它是一个较老的库,所以确保你的MySQL服务器版本与库相匹配,或者考虑升级到更现代的库,如`pymysql`或`mysql-connector-python`。...

    一些比较常见的Python报错问题

    ### 常见Python错误及解决方案 #### 一、无法启动服务器:“找不到导入的名字‘index’” **问题描述**: 当使用`python manage.py runserver 8080`命令试图启动一个基于Django框架的Web服务器时,可能会遇到一个...

    Python库 | pycontw_mail_handler-0.3.0-py3-none-any.whl

    对于更详细的使用方法和API文档,建议访问项目官方仓库或查阅相关文档以获取完整信息。总的来说,`pycontw_mail_handler`库为Python开发者提供了一个高效、便捷的邮件处理工具,尤其对于那些需要处理大量会议相关...

    基于python实现的一个服务器巡检脚本

    【作品名称】:基于python实现的一个服务器巡检脚本 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 一个windows/...

    androguard以及python库

    7. **Python库集成**:所有这些库的使用展示了Python在数据处理、网络通信和分析工作中的灵活性,Python作为胶水语言,能方便地整合多种工具,构建复杂的分析流程。 在实际应用中,这些库和工具的组合使用可以形成...

    Cocos Creator 3.2, 4399小游戏上线 处理 .cconb文件 加载报错, 自动化处理

    将 web-mobile项目 放入 src...答1: 您的项目目录下的 .cconb文件会被替换成 .bin文件,且在引擎入口添加了一条新的渲染管线来支持 .cconb的处理 和 .bin与.cconb的加载器区分 又任何疑问 可以联系我的qq 331565861

Global site tag (gtag.js) - Google Analytics