Django框架使用注意点-笔记小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youzi_yun/article/details/78356190

抽象模型基类的Python文件命名应为小写加下划线。


form表单获取的数据均为str格式,如果需要计算,记得转换格式。


表级操作用的是模型管理器对象,例如查询表;
行级操作用的是那一行数据对象,写在模型类中,比如更新数据(例如:self.get(user_id = XX)获取到的对象)。


  • setting中配置MEDIA_ROOT放置前台用户上传图片的存储路径:
  • 创建测试数据时,在test.py中,图片的路径仍然以static(静态文件根目录)计,可以写以MEDIA_ROOT为相对路径开始计,在html中要手动添加MEDIA_ROOT。
  • 创建模型时,后台admin上传图片的存储路径,upload_to=”“以MEDIA_ROOT为相对路径开始计算”,但是数据库中存储的路径是不加MEDIA_ROOT的,记得修改model,加上MEDIA_ROOT路径,html渲染时,路径仍然以static计。

创建模型

创建抽象基类模型,记得在类内写
 class Meta: abstract = True

在admain中给字段起名字  
verbose_name 
goods_name = models.CharField(max_length=20,verbose_name="商品名")

在admain中给模型类起名字 
class Meta: 
    verbose_name = "菜品分类" 
    verbose_name_plural = "菜品分类" 

所有后台获取到的数据,均要进行验证:
- 前台用户输入数据,格式,合法性验证;
- 从数据库获取数据,均需要try,根据情况写except。


csrf_token

 {% csrf_token %} 
 在html页面生成input隐藏标签 
<input type="hidden" name="csrfmiddlewaretoken" value="xxxxxxxxxxxxxxxxxxxxxxx">

{{ csrf_token }}
直接生成token的value xxxxxxxxxxxxxxxxxxxxxxxxxxxx 

html页面想向后台,js传送数据,可以增加隐藏标签,通过name获取,如post请求的ajax,手动获取token的value,发送给后台。


视图中链接数据库操作时,用变量接收,不会执行查询,只有在模板中渲染时,用到才会执行查询,并缓存,不会每次都查。

goods = Goods.objects.all()


猜你喜欢

转载自blog.csdn.net/youzi_yun/article/details/78356190