(本项目使用的后台管理模板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