Django
文章平均质量分 54
Django
一个微不足道的bug
debug大师
展开
-
59- Django番外-django对应的数据库类型
3. 视图函数中使用 goods_type 操作数据。2. 模型中使用自定义的字段类型。1. 自定义字段类型。原创 2024-01-30 17:00:49 · 442 阅读 · 0 评论 -
58- 项目 -20 - 项目静态文件(完结)
所有静态页面源码和修改后的源码。原创 2023-10-16 14:15:28 · 95 阅读 · 3 评论 -
57- 项目 -19 - 部署
使用支付宝沙箱模式,记得更改支付查询调用的函数里面的沙箱路径。虚拟环境中找到分词文件,编辑分词的文件,重新生成索引数据。使用nginx处理静态文件。原创 2023-10-16 14:03:29 · 60 阅读 · 0 评论 -
56- 项目 -18 - 用户中心-订单页
支付宝开放平台复制电脑生成的公钥替换沙箱原有的自定义公钥import os# 前端传递的参数: 订单id(order_id)"""订单支付""""""订单支付"""# 用户是否登录return JsonResponse({"res": 0, "errmsg": "用户未登录"})# 接收参数# 校验参数return JsonResponse({"res": 1, "errmsg": "无效的订单id"})try:user=user,原创 2023-10-13 15:34:24 · 75 阅读 · 0 评论 -
55- 项目 -17 - 提交订单
"""提交订单页面显示""""""提交订单页面显示"""# 获取登录的用户# 获取参数sku_ids# 校验参数# 跳转到购物车页面skus = []# 保存商品的总件数和总价格# 遍历sku_id获取用户要购买的商品信息# 根据商品的id获取商品的信息# 获取用户所要购买的商品数量# 计算商品的小计# 动态给sku增加属性count,保存购买商品的数量# 动态给sku增加属性amount,保存购买商品的小计# 追加# 累加计算商品的总件数和总价格。原创 2023-10-12 09:54:26 · 61 阅读 · 0 评论 -
54 - 项目 -16 - 购物车页面
/cart/"""购物车页面展示""""""显示"""# 获取登录的用户# 获取用户购物车中商品信息# {'商品id':商品数量}skus = []# 保存用户购物车中商品的总数目和总价格# 遍历获取商品的信息# 根据商品的id获取商品的信息# 计算商品的小计# 动态给sku对象增加一个属性amount保存商品的小计# 动态给sku对象增加一个属性count保存购物车中对应商品的数量# 添加# 累加计算商品的总数目和总价格# 组织上下文context={...原创 2023-10-09 17:53:46 · 49 阅读 · 0 评论 -
53 - 项目 -15 - 添加购物车
"""购物车记录添加""""""购物车记录添加"""# 用户未登录return JsonResponse({'res': 0, 'errmsg': "请先登录"})# 接收数据# 数据校验return JsonResponse({'res': 1, 'errmsg': "数据不完整"})# 校验添加的商品数量try:# 数目出错return JsonResponse({'res': 2, 'errmsg': "商品数目出错"})# 校验商品是否存在try:# 商品不存在。原创 2023-10-09 10:13:12 · 164 阅读 · 0 评论 -
52 - 项目 -14 - 商品搜索
【代码】52 - 项目 -14 - 商品搜索。原创 2023-10-08 17:14:46 · 50 阅读 · 0 评论 -
51 - 项目 -13 - 商品列表页
..# 种类id 页码 排序方式# restful api ->请求一种资源# /list?type_id=种类id&page=页码&sort=排序方式# /list/种类id/页码/排序方式# /list/种类id/页码?sort=排序方式"""列表页""""""显示列表页"""# 获取种类信息try:# 种类不存在# 获取商品的分类信息# 获取排序的方式,获取分类商品的信息# sort = default 按照默认id排序# sort = price 按照商品的价格排序。原创 2023-10-08 15:17:29 · 50 阅读 · 0 评论 -
50 - 项目 -12 - 商品详情
/goods/商品id"""详情页""""""显示详情页"""try:# 商品不存在# 获取商品的分类信息# 获取商品的评论信息# 获取新品信息# 获取用户购物车中商品的数目# 用户已登录cart_count = conn.hlen(cart_key) # hlen():返回哈希元素的数目# 组织模板上下文# 使用模板...P<goods_id>\d+)$',DetailView.as_view(),name="detail"), # 详情页准备中...原创 2023-10-08 11:22:17 · 45 阅读 · 0 评论 -
49 - 项目 -11 - 首页
goods子应用中定义"""首页""""""显示首页"""# 获取商品的种类信息# 获取首页轮播商品信息goods_banners=IndexGoodsBanner.objects.all().order_by('index') # 默认升序,降序: 加-号即可# 获取首页促销活动信息# 获取首页分类商品展示信息# 获取type种类首页分类商品的图片展示信息# 获取type种类首页分类商品的文字展示信息# 动态给type增加属性,分别保存首页分类商品的图片展示信息和文字展示信息。原创 2023-09-29 00:45:25 · 53 阅读 · 0 评论 -
48 - 项目 -10 - python和fastDFS交互
2. 启动 tracker,storage,nginx服务 3. 测试上传文件 4. 在浏览器访问 2. util文件夹下新建 fdfs/storage.py文件 3. util文件夹下新建 fdfs/client.conf 配置文件 4. settings.py配置 文件存储类路径 5. 测试上传文件 (1). admin.py 导入模型 (2). 访问中台管理原创 2023-09-27 16:35:44 · 560 阅读 · 0 评论 -
47 - 项目 -09 - FastDFS文件系统简介
【代码】47 - 项目 -09 - FastDFS文件系统简介。原创 2023-09-27 14:23:22 · 67 阅读 · 0 评论 -
46 - 项目 -08 - 用户中心-个人信息
/user"""用户中心 - 信息页""""""显示"""# 如果用户未登录 -> AnonymousUser类的一个实例# 如果用户登录-> User类的一个实例# request.user.is_authenticated() # 内置认证类,判断有没有登录,返回 True/False# 如果是User类 返回 True, AnonymousUser类返回False# 获取用户的个人信息# 使用模型管理器类# 获取用户的历史浏览记录。原创 2023-09-26 15:45:11 · 46 阅读 · 0 评论 -
45 - 项目 -07 - 用户中心-地址
"""用户中心 - 地址页""""""显示"""# 获取用户的默认收获地址try:# 不存在默认收货地址# 使用模板"""地址的添加"""# 接收数据# 校验数据return render(request, 'user_center_site.html', {"errmsg": "数据不完整"})# 校验手机号return render(request, 'user_center_site.html', {"errmsg": "手机格式不正确"})# 业务处理:地址添加。原创 2023-09-26 14:14:57 · 46 阅读 · 0 评论 -
44 - 项目-06- 登录基本流程
"""登录""""""显示登录页面""""""登录校验"""# 1. 接收数据# 2. 校验数据return render(request, 'login.html', {"errmsg": "数据不完整"})# 3. 业务处理:登录校验# django内置校验user,有的话返回对象,没有返回None# 用户名或密码正确# 用户已激活# 记录用户登录状态login(request, user) # 内置认证: 记录登录状态# 跳转到首页。原创 2023-09-22 10:45:58 · 56 阅读 · 0 评论 -
43 - 项目-05- 注册基本逻辑
import re# 显示异常,但不会报错"""注册""""""显示注册页面""""""进行注册处理"""# 1. 接收数据allow = request.POST.get("allow") # 复选框,如果选择参数值就是 'on'# 2. 进行校验if not all([username, password, email]): # all函数,参数是可迭代的,都为True,则为True# 数据不完整。原创 2023-09-21 14:22:16 · 91 阅读 · 0 评论 -
42 - 项目-04- 创建模型
【代码】42 - 项目-04- 创建模型。原创 2023-09-20 17:34:30 · 58 阅读 · 0 评论 -
41 - 项目-03- 创建项目
【代码】41 - 项目-03- 创建项目。原创 2023-09-20 15:26:30 · 52 阅读 · 0 评论 -
40 - 项目-02- choices选项 & 富文本编辑器
【代码】40 - 项目-02- choices选项 & 富文本编辑器。原创 2023-09-20 14:42:39 · 66 阅读 · 0 评论 -
39 - 项目-01- 项目解析
认识电商1. B2B: 企业对企业2. CSC: 个人对个人3. B2C: 企业对个人4. C2B: 个人对企业5.O2O: 线上到线下6.F2C: 工厂到个人7.B2B2C: 企业 -企业 - 个人原创 2023-09-20 10:45:23 · 41 阅读 · 0 评论 -
38 - 跨域问题
跨域: 前后端分类使用ajsx访问另一处地址,只要端口,协议,服务器有一处地方不一样就是跨域一. 跨域问题演示:1. 随便新建个 html(前端)2. 定义视图(后端)3. 定义路由4. 问题描述 此时,浏览器打开html页面,点击 载入 就会提示 异常(跨域)2. settings.py配置原创 2023-09-19 16:54:01 · 51 阅读 · 0 评论 -
37 - 生成接口文档
三个引号就是文档描述"""get:查询单个用户post:添加用户put:修改用户delete:删除用户"""queryset = User.objects.all() # 查询结果集serializer_class = UserSerializer # 序列化集# RetrieveModelMixin扩展类def get(self, request, uid): # 查询单条# CreateModelMixin 添加扩展类# UpdateModelMixin更新扩展类。原创 2023-09-19 16:25:54 · 86 阅读 · 0 评论 -
36 - 分页 & 过滤
人物序列化# 继承ListAPIView# 查询结果集# 序列化器page_size = 2 # 每页2条记录page_size_query_param = 'page_size' # 每页记录数的参数名字# 自定义分页形式('count', self.page.paginator.count), # 总条数('page_range', list(self.page.paginator.page_range)), # 页码范围。原创 2023-09-19 14:17:51 · 76 阅读 · 0 评论 -
35 - 认证 & 权限 & 节流
认证: 每次请求前都会进行校验REST framework 提供了一些开箱即用的身份验证方案,并且还允许实现自定义方案 (2). 生成token (3). 验证token (4). 删除token2. 封装 认证 类3. 封装序列化4. 视图类 调用 token 类 和 序列化5. 定义路由6. 配置认证类 (1). 全局配置 (2). 局部配置原创 2023-09-18 11:52:42 · 50 阅读 · 0 评论 -
34 - DRF框架- wrappers包装调试器
api_view装饰器。原创 2023-09-15 18:29:59 · 47 阅读 · 0 评论 -
33 - DRF框架- 序列化
在字段上定义验证raise serializers.ValidationError("日期不能小于2010-01-01")# 序列化增加参数校验class BookSerializers(serializers.Serializer): # 字段和数据库保持一致,字段类型和model保持一致# required=True: 反序列化未提供字段会报错,不需要此字段设置为False# allow_null: 允许输入None;validators: 验证。原创 2023-09-15 18:07:55 · 74 阅读 · 0 评论 -
32 - DRF框架- 手动写前后端分离
managed = False # 不需要迁移def to_dict(self): # 类方法,返回字典格式return {"""迁移指令"""# 自定义返回格式def querset_to_list(self, queryset,token): # 调用类方法,返回[{},{}]res = []res.append(obj.to_dict()) # to_dict是模型类中定义的展示方法return res# 查询所有图书# 获取csrf验证value。原创 2023-09-15 13:45:02 · 106 阅读 · 0 评论 -
31 - CBV 装饰器
if request.session.get('username'): # 判断有没有登录# 调用装饰器的三种方法# @method_decorator(my_check, name='dispatch')# 1. 为全部请求方法添加装饰器@method_decorator(my_check, name='get') # 2. 为特定的方法添加装饰器# @method_decorator(my_check) # 3. 为特定的方法添加装饰器print("get方法")原创 2023-09-14 18:10:27 · 39 阅读 · 0 评论 -
31 - CBV 继承内置类
<p>{{ name }}</p>原创 2023-09-14 17:49:07 · 37 阅读 · 0 评论 -
30 - 视图类CBV & CSRF验证
获取到csrf验证value,返回给前端# 前端添加 header: X-CSRFToken: token# 即可通过csrf验证访问 post/put/delete接口# 视图类.as_view()原创 2023-09-14 16:55:24 · 56 阅读 · 0 评论 -
29 - 日志
【代码】29 - 日志。原创 2023-09-14 13:51:46 · 39 阅读 · 0 评论 -
28 - 任务队列 - Celery -查看异步任务情况
【代码】28 - 任务队列 - Celery -查看异步任务情况。原创 2023-09-14 09:35:50 · 523 阅读 · 0 评论 -
28 - 任务队列 - Celery -定时任务
【代码】28 - 任务队列 - Celery -定时任务。原创 2023-09-13 18:21:51 · 73 阅读 · 0 评论 -
27 - 任务队列 - Celery -异步任务
from app01.tasks import hello_world # 导入异步任务# 任务函数名.delay(参数)hello_world.delay(4) # 把任务添加到任务队列。原创 2023-09-13 16:27:08 · 148 阅读 · 1 评论 -
26 - 任务队列 - Celery -配置
Celery是一个Python分布式任务队列系统(1). 官网1.任务发布者:web 应用产生的事件,如:发送邮件、短信等异步任务2.任务调度器:定时任务3.Broker:任务队列,支持 redis 或 RabbitMQ4.Worker:获取任务并处理,任务处理者5.Datebase:存储结果Celery本身不提供队列服务,推荐用Redis或RabbitMQ实现队列服务(3). 应同场景异步任务。原创 2023-09-13 15:17:47 · 324 阅读 · 0 评论 -
25 - 缓存
cache_page(20) # 缓存20秒return render(request, 'app01/index.html', locals()) # 缓存期间将不在向后端发起请求app_name = "App" # 应用的命名空间<body></body>模板中缓存。原创 2023-09-12 10:07:23 · 45 阅读 · 0 评论 -
24 - 中间件
【代码】24 - 中间件。原创 2023-09-11 17:39:37 · 44 阅读 · 0 评论 -
23 - 站点管理
..bname = models.CharField(max_length=200, blank=True, null=True,verbose_name="姓名")# ForeignKey第一个参数: 参照的模型名;# on_delete =models.CASCADE 级联删除# db_column: 表中字段名# related_name: 从出版社查询图书引用的名字null=True) # 外键。原创 2023-09-11 16:01:30 · 38 阅读 · 0 评论 -
22 - 文件上传
获取文件上传对象fobj = request.FILES.get("photo") # 接收文件对象path = os.path.join(settings.STATICFILES_DIRS[0], 'upload') # 文件保存地址path = os.path.join(path, fobj.name) # 拼接地址 和 文件名if fobj:print(fobj.name, fobj.size) # 文件名称 和 大小# 文件读写。原创 2023-09-11 14:25:20 · 44 阅读 · 0 评论