该项目主要用于教学使用,该爱鲜蜂项目是商城系统,主要功能有首页展示,闪购超市,购物车,个人中心等
1)开发流程---先演示配置好的,并且运行起来的项目
a) 先看运行起来的项目,大致看看开发功能有那些,实现技术要使用那些
b)需要使用的模型创建,字段的定义
c)提供数据---事先准备好插入数据的sql,第二天提供
2) 项目搭建
a)虚拟环境搭建
a1)pychram的解释器interpreter的配置
a2)debug的配置
virtualenv --no-site-packages -p D:/python3/python3.6.exe env
b)创建项目
b1)创建app
b2)创建templates
b3)创建静态文件
b4)开发接口文档doc目录的创建
b4)settings.py文件中的installed_app的配置,databases的配置,templates的配置,static的配置,
login_url = '/login/'
b5)工程的__init__.py中初始化pymysql,install_as_mysqldb
c)前端页面渲染
c1)模板的继承,定义base.html,挖坑{% block title%}{% endblock %}以及填坑
c2)静态css,js,img的渲染。{% load static %}以及直接/static/css/xxx.css
3)功能的梳理
a)框架分析
a1)用户中心
a2)首页商品展示
a3) 闪购(商品列表)
a4)购物车
a4.1)订单系统
a4.2)收货地址
a4.3)支付
a4.4)积分系统
a4.5)vip
a4.6)物流
a4.7)评论系统
a4.8)优惠券
b)开发过程
b1)首页--闪购--购物车--个人模块
4)后端页面渲染
a)编写urls-->views的逻辑
b)把首页/闪购/购物车/我的页面,全部render渲染出来,不用加载数据都可以
5)首页展示信息模型定义
a)banner轮播模型定义
b)导航栏模型定义
c)必购模型定义
d)商店模型定义 ---->以上模型定义都一样
6)闪购模型定义(FoodType)
a)闪购左侧菜单分类
b)顶测分类
b1)全部类型----全部分类
b2)综合排序----综合排序、销量排序、价格排序、价格升序
c)定义搜索url、/axf/market/ID1/ID2/ID3/
c1)ID1:左侧菜单分类id
c2)ID2:全部类型的分类(0)
c3)ID3:综合排序的分类(0,1,2,3)
部分功能图片: 以下展示首页
作业:先演示讲模板拆分为基础模板,然后通过继承挖坑等技术来完成模板的拆分
1)拆分所有的模板
2)页面可点击各模板,展示对应的页面,首页/闪购/购物车/个人中心等
3)登录注册退出----使用中间件的方式
4)头像上传
*)上午演示登录注册注销功能(客户端和服务端都验证令牌的时效)
a) 令牌验证,创建单独的表,存令牌和过期时间
b) cookie中设置缓存时间
c) 也可以使用django自带的登录 authenticate login logout
1)中间件的配置
a)判断cookies中是否有登录的令牌ticket,如果没有不做任何处理
b)如果cookies中有令牌,则去数据库userticket表中去判断令牌是否有效
c)令牌无效或者过期的话,不做任何处理
d)令牌有效的话,将user的数据给request.user
-
个人中心模块
a)先验证request中是否有user的信息,如果有则在个人中心页面中渲染用户名,头像图片等信息 a1)待付款和待收货的数据刷新,通过user找到order订单表,查看订单表的订单状态
c)没有验证到request中的user信息的话,则在个人中心页面中,展示登录以及注册的按钮的信息
3)购物车页面
a)如果request中没有user的信息,则跳转到登录页面
4)注册
a)ajax在用户名的onblur的点击的时候,执行查询用户名是否重复的请求,并展示查询的结果,用户名重复或者用户名可用
5)登录
a)随机生成ticket,存放在cookies中,设置过期时间
b)userticket表中存用户和ticket的信息,以及过期时间,过期时间和cookies中的过期时间一致
*)下午闪购页面
1)闪购页面 --> 商品分类模型, 商品模型
a)闪购模型的关联关系
b)闪购页面的分类商品展示,全部类型的展示
2)购物车模型 (CartModel)
a1)购物车页面展示,购物车中信息展示
3)购物车逻辑分析,模型和订单模型的关联等
b1) 关联用户,关联商品,数量等
个人中心功能展示: 登录注册, 个人中心
闪购功能展示: 闪购页面
1)增加或者删除选购商品数量,使用ajax异步修改数据
a)增加/axf/addtocart/?goodsid=475
b)删除/axf/subtocart/?goodsid=475
c)选中下单的商品,is_select字段,创建订单的时候过滤掉is_select为False的商品数据
-
商品购物车中删除商品的个数为0时,该商品不展示
a) 商品数量减少为0的时候,购物车中商品记录删除,并将页面中商品为0的数据删除 b)闪购页面的商品数量数据的刷新,使用ajax去刷新
3)下单订单生成
a)订单模型order,购物车下单以后生成订单信息,包括用户信息,订单支付状态,订单创建时间等
b)根据订单信息创建订单和商品的表信息,该表中关联订单,关联商品,商品的数量等信息
作业:
1. 商品购物车全选或者全不选实现
2. 商品购物车中的总价展示实现
部分功能展示:购物车
1) 订单支付
a1)点击订单支付alipay的按钮,实现修改订单的支付状态,并且跳转到个人中心页面
2)个人中心页面
b)个人中心的待支付页面,待收货页面
c)个人中心的待收货刷新,代付款订单个数刷新
部分功能展示: 支付页面,待收货/代付款页面
复习1:
a)复习所有代码
部署2: 测试环境部署方式和线上环境nginx+uwsgi部署方式:
部署的服务器采用的是ubuntu16系统
-
安装包
sudo apt update apt install mysql-server mysql-client
-
设置远程访问mysql
a) 查找 mysql.conf find / -name mysql.cnf b)注释mysql.cof文件的bind_address cd /etc/mysql/mysql.conf.d vim mysqld.cnf c)切换mysql数据库 use mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION; flush privileges; d) 重启 service mysql restart /status/ stop/ start
-
修改django的配置文件
a)修改settings.py文件中的DEBUG=FALSE,ALLOWED_HOST=['*'] b)修改urls.py b1)url中加入以下配置 from django.views.static import serve url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATIC_ROOT}), url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}), b2)setting中 STATIC_ROOT = os.path.join(BASE_DIR, 'static') b3)url中修改首页访问的地址 url(r'^$', views.home)
-
修改首页的启动地址
修改工程目录中的url ,并修改url(r'^$', views.home)
-
安装pip3
apt install python3-pip
-
安装必备库
pip3 install django==2.1.4 pip3 install pymysql pip3 install Pillow
-
查看进程
netstat -lntp
-
启动项目
python3 manage.py runserver 0.0.0.0:80