图书商城
项目实战介绍
项目:图书商城
技术:Django2.2 + python3.7+mysql5.7
特点:
- 完整的完成一个在线商城的全流程
- 多图上传,短信验证,阿里支付,云服务器部署
功能:
前台:
- 注册,登录,首页,列表,详情,购物车,订单,个人中心
后台:
- 登录,会员管理,图书分类,图书商品,订单,权限管理
设计数据字典:
数据字典就是根据项目的功能和要求,去设计对应的数据库,表和字段。
会员表 user
ID 用户名,密码,邮箱,手机号。。。。
项目结构搭建:
bookshop/
├── bookshop
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── myadmin
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── myhome
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── static
│ ├── myadmin
│ ├── myhome
│ └── uploads
└── templates
├── myadmin
└── myhome
后台开发:
会员管理:
查看会员列表,详情信息,禁用,【修改,删除,添加】
会员模型:
列名 | 字段 | 类型 | 说明 |
---|---|---|---|
ID | id | 主键 | |
用户名 | username | Varchar | |
密码 | Password | char(80) | |
手机号 | Phone | char(11) | 唯一索引 |
性别 | Sex | Tinyint | |
年龄 | Age | Tinyint | |
注册时间 | Additive | Datetime | |
最后登录时间 | Savetime | Datetime | |
状态 | Status | Tinyint | 默认0,1禁用, |
头像 | face_url | Varchar | 存储头像的路径 |
图书分类:
添加,列表,删除,编辑
图书分类模型:
列名 | 字段 | 类型 | 说明 |
---|---|---|---|
ID | id | 主键 | |
分类名称 | name | 字符串 | |
父级ID | Pid | 数字 | |
路径 | path | 字符串 |
图书分类:
ID。 分类名称 父级ID 路径path
1。 人文社科 0 0,
2。 小说 0 0,
3。 经济管理 0 0,
4。 古籍 1 0,1,
5。 经部。 4 0,1,4,
6。 当代小说。 2
---
服务分类
id。 分类名。 父级ID。 路径path
1。 服装。 0。 0,
2。 男装。 1 0,1,
3。 女装。 1。 0,1,
4。 男正装。 2。 0,1,2,
5。 衬衫。 4。 0,1,2,4,
图书商品,
订单,
权限管理
自定义模版标签
在应用中创建一个 templatetags 包
在templatetags包中 创建自定义模块 pagetag.py
在pagetag.py模块文件中,自定义标签或过滤器 ```python
/web/myadmin/templatetags/pagetag.py
from django import template
register = template.Library()
自定义过滤器
@register.filter def chuan_upper(val): return val.upper()
自定义 标签
@register.simple_tag def jia(a,b): return int(a)+int(b)
4.
使用自定义的过滤器或标签
```html
<!-- index.html. 在使用自定义标签或过滤器时,需要导入 -->
{% load pagetag %}
{{ 'abc'|chuan_upper }}
{% jia 1 2 %}
mysql存储过程
利用mysql存储过程,给会员表批量添加数据
\d //
create procedure p1()
begin
set @i=0;
while @i<1000 do
insert into myadmin_users values(null,concat('user',@i),'123446',concat('1370138',@i),1,20,'2020-01-08 06:45:44','2020-01-08 06:45:44',0,'/static/myadmin/img/user05.png');
set @i=@i+1;
end while;
end;
//
\d ;
call p1();