美多商城
项目背景
这几天一直琢磨着如何才能培养自己好的代码习惯和读源码能力 或者说是我大学以来一直担心的
但是感觉这件事如果不自己写一个’工程项目’是永远都不会懂的。
遂找了个以前毕业必会的项目练练手项目视频教程。
项目配置
环境配置
先在windows下创建虚拟环境
# 没装包pip install 一下 |
主要是django+redis+mysql+jinja2的框架进行前后端不分离开发,环境如下
Django 3.2
django-redis 4.12.1
Jinja2 2.11.3
pip 20.1.1
PyMySQL 1.0.2
redis 3.5.3
github配置
这个很简单,github建库,clone一下就完事了
目前为止的tree结构
├─.idea
└─meiduomall├─readme
└─.gitignore
因为是django项目在meiduomall里面执行 就有了基本框架
# 如果没有必要包先安装必要包 |
开发环境配置
这里涉及许多就不一一细说了,都是在setting文件里修改。
不过首先为了测试等方便,将原本的setting.py删除创建新的setting包,再在里面创建dev.py作为测试setting
#!/usr/bin/env python |
注意使用jinja2的框架要设置环境(在template那),新建utils包,在里面创建jinja2_env.py
# -*- coding:utf-8 -*- |
之后就是在setting中修改了,我主要改了 databases,templates,增加了redis,logging,static_url
别忘记建个mysql数据库
""" |
加上templates,static,logs文件夹的tree如下(当然可以把logs文件夹放在和meiduomall同级目录)
├─.idea
└─meiduomall
└─meiduomall
├─logs
├─settings
├─static
├─templates
├─utils
用户注册
okk,以上我们已经完成了项目配置,现在可以开始构建app了
apps
为了方便管理,我们先在meiduomall目录下创建一个python package apps,然后再在里面创建项目子应用。
python ../../manage.py startapp users |
然后在setting中注册子应用每次创建都有注册,后续就不再赘述了
# 用户子应用注册,如果不知道路径可以通过sys.path查看 |
注册页面
因为我主要还是从事后端所以所有html都默认已经写好了,直接用(现在templates里面已经有register.html)
在view.py中创建register视图类
视图类可以理解为在当前页面发送请求所触发的相应的响应。后面在详细修改
from django.shortcuts import render |
设置路由
这里要闲话一下
urlpattern的匹配顺序
在根路由中顺序匹配,匹配成功则进入子应用路由匹配(可以多个匹配成功
子路由中匹配剩余的string
如果根路由正则为r’^register/‘
子路由中正则为r’^register/$’
输入路径为 xxxx:xxx/register/ ,会nofound
提示也有先匹配register/ 匹配成功,然后剩余字符串为’’,匹配子路由失败
这样是xxx:xx/register/register/才会匹配成功
"""meiduomall URL Configuration |
# 在users下创建urls.py文件 |
现在打开即可看到注册页面
实现数据存储数据库
创建user模型类完成注册登录并存储账号等信息到数据库,因为django已经有内置的用户类所以直接继承即可。
from django.db import models |
一般get是向服务器发送请求,post是向数据库发送请求
验证信息
信息填写后还需要验证这一步骤,包括前端验证和后端验证,步骤是先前端初步判断信息十分符合,再使用axios发送get|post请求,然后后端向数据库得到数据检验信息是否符合规范。
可以建立一个verification子应用然后再里面修改。(添加子应用和前面步骤都一样
具体检验信息包括:
- 用户名检验(前端检验是否合法,后端检验是否重复
- 密码检验(前端后端检验两次密码是否相同
- 手机号检验(前端检验是否合法,后端检验是否重复
- 验证码检验(后端检验是否与用户输入相同
- 短信检验(后端检验是否符合
- 同意条款检验(前后端检验是否勾选
有条件最后都前后端都检验一下,以防恶意分子。
# View 代码 |
// 检验手机号为例 |
注意验证码是存放在redis中的,项目开始不要忘记开启redis和mysql
也可以再增加一个verify_code redis库,如果你的redis有密码还要配置密码
CACHES = { |
下面讲一讲验证码检验部分思路,其实很简单 短信验证用不起
- 定义view
- 定义url路由
- 前端访问对应路由
- view接受get|post请求
- view类里查询redis,check用户与后端数据库存储是否相同
后记
你看到后记可能会问,唉?这就后记了?就这?没错
因为写到这里用户注册部分就已经差不多了,之后只是对注册页面的各种优化(虽然不知为什么我的axios的ajax请求会刷新页面)但算是把一个板块写完了吧,所以先告一段落。
由于5.1校赛选择了烟盒的目标识别,发现自己好多网络结构都不懂,trick也是现场yy,开始说好的k折也没实现菜鸡全靠大佬带飞。
当务之急是恶补ML基础所以接下来可能按这方面走了:
Mobilenet学习和代码复现
Effient Net学习和代码复现
本文链接:https://dummerfu.top/p/6015.html
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议 转载请注明出处!