100:Django完整学员管理项目、傻瓜式流程讲解

在这里插入图片描述
(本项目使用的后台管理模板SB Admin)

创建项目
1、启动虚拟环境
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
创建项目
django-admin startproject STUDB
在这里插入图片描述
在这里插入图片描述
创建APP
1、切入项目目录
2、创建app
(djangoProject) E:\pythonProject>cd STUDB

(djangoProject) E:\pythonProject\STUDB>python manage.py startapp Student
在这里插入图片描述
创建静态目录
Static
Templates
在这里插入图片描述
在这里插入图片描述
第一次打开项目,项目的环境变量有问题
1、我们现在使用的是虚拟环境,需要安装包到虚拟环境去安装
在这里插入图片描述
2、pycharm的环境变量
注:打开是django的项目目录
在这里插入图片描述
打开有问题
在这里插入图片描述
配置pycharm里的 --> settings
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建数据模型在这里插入图片描述
创建数据模型的点
1、类名即表名 类名首字母必须大写
2、类名不要复数 admin会自动加
3、str 方法必须返回字符串

代码如下
\STUDB\Student\models.py
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length = 32)
password = models.CharField(max_length=32)
email = models.EmailField()
def str(self):
return self.username
class Student(models.Model):
nickname = models.CharField(max_length = 32)
age = models.IntegerField()
gender = models.CharField(max_length = 8)
photo = models.ImageField(upload_to = “static/image”)
phone = models.CharField(max_length = 32)
email = models.EmailField()
address = models.CharField(max_length = 64)
classes = models.CharField(max_length = 32)
project = models.CharField(max_length = 32)
score = models.CharField(max_length = 8)
def str(self):
return self.nickname
(注意代码格式。)
配置settings
在这里插入图片描述
安装APP
在这里插入图片描述
模板文件路径
在这里插入图片描述
数据库配置
默认为sqllite
在这里插入图片描述
若使用Mysql
在这里插入图片描述
静态配置
在这里插入图片描述
对于数据库同步,我们需要安装的依赖包
1、Mysql数据库需要安装pymysql
pip install pymysql
在这里插入图片描述
2、ImageFiled字段需要pillow
Pip install pillow
在这里插入图片描述
3、如果遇到mysql数据库,并且python版本为3版本需要调整PYmysql的导入
在这里插入图片描述
数据库同步
新版本 >= 1.9
老版本 < 1.9

创建数据库 ,charset=utf8

1、语法检测
python manage.py check(validate)
在这里插入图片描述
2、数据库语句生成
python manage.py makemigrations
在这里插入图片描述
3、同步数据库
python manage.py migrate(syncdb)
在这里插入图片描述
创建admin超级用户
Django 2版本之前默认创建后台超级用户,2.0之后,我们需要借助命令
在这里插入图片描述
密码要注意,是不显示的
在这里插入图片描述

创建静态文件
1、Base
2、Register
3、Login
4、StudnetList
5、Student
6、Index
在这里插入图片描述
在这里插入图片描述
为了方便修改,先指出base页
编写视图函数
在这里插入图片描述
路由指出视图
在这里插入图片描述
启动项目,查看效果
在这里插入图片描述
样式丢失,修改静态文件的路径
在这里插入图片描述
效果如下
在这里插入图片描述
然后修改文件和内容,并改名为base在这里插入图片描述
效果如下
在这里插入图片描述
添加base.html的块儿标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:可以删除base的视图和路由
首页先出
1、创建首页文件
在这里插入图片描述
2、继承模板
首先选择继承模板
选择自己独立的内容
在这里插入图片描述
3、加入首页自己的内容
在这里插入图片描述
在这里插入图片描述
Index的视图和路由
在这里插入图片描述

在这里插入图片描述
开始注册页
1、修改注册页样式,并且将注册页发布(views+urls)
在这里插入图片描述
在这里插入图片描述
Register
1、提交表单
1、查看form表单,添加
1、Action
2、Method
3、Csrf_token 如果是post
在这里插入图片描述
4、Input name
在这里插入图片描述
5、Submit在这里插入图片描述
编写后台保存逻辑
1、后台接受数据
2、数据处理
密码加密
在这里插入图片描述
3、数据保存
视图
在这里插入图片描述
2、校验邮箱是否重复
搭建ajax结构
在这里插入图片描述
后端创建ajax响应视图
在这里插入图片描述
指出路由在这里插入图片描述
完成前端ajax的请求地址和触发事件在这里插入图片描述
在这里插入图片描述
由于代码的问题:
1、前端
\STUDB\templates\register.html
在这里插入图片描述
在这里插入图片描述
2、视图代码
在这里插入图片描述
在这里插入图片描述
登录:
1、处理页面(views+urls)
def login(request):
if request.method==“POST” and request.POST:
name=request.POST.get(“firstName”) #获取ajax提交的用户名
inpassword = getPassword(request.POST.get(“inputPassword”))
user=UserInfo.objects.filter(firstname=name) #匹配数据库中的name
# user=UserInfo.objects.filter(firstname=name).first() #匹配数据库中的name
# response.set_cookie(“firstName”, user.firstname)
if user :
mypass=user[0].password
if inpassword == mypass :
response = HttpResponseRedirect("/index/")
response.set_cookie(“firstName”,user[0].firstname)
look = ‘密码正确’
return response
else:
look = ‘密码错误’
return render_to_response(‘login.html’, locals())
else:
look = ‘用户不存在’
time.sleep(1)
return HttpResponseRedirect(’/register/’)
return render(request,‘login.html’,locals())
URLS:
在这里插入图片描述
2、post请求
在这里插入图片描述
在这里插入图片描述
3、判断逻辑
4、Cookie的问题
在这里插入图片描述

登录注册界面有需要的可以留言。
在这里插入图片描述
在这里插入图片描述
项目内容较为简洁。有需要请看专栏
https://blog.csdn.net/weixin_43582101/column/info/32178

猜你喜欢

转载自blog.csdn.net/weixin_43582101/article/details/86149207