1、安装Django pip install django
2、创建Django项目:
pycharm专业版直接 文件-新建项目--django
直接创建可清除 templates文件夹,sttings.py 调整代码 'DIRS': [],
终端代码创建:进入需要创建项目的目录 django-admin startproject HelloWorld
3、结构说明:
settings.py 配置文件
url.py 路由文件
view.py 视图、函数文件
app模块功能文件
static 静态文件夹
CSS 样式文件
JS JS文件
templates 模板文件
HTML
models数据库对应文件
4、创建APP,注册APP
创建APP python manage.py startapp app01
注册 setting 'app01.apps.App01Config'
5、配置静态文件&模板文件(放在APP目录下)
6、配置数据库相关操作
pip install mysqlclinet
mysql创建数据,Stings配置数据链接
设计表结构,models
class Department(models.Model):
#部门表
# id=models.BigAutoField(verbose_name="id",primary_key=True)
title=models.CharField(verbose_name="部门名称",max_length=32)
class UserInfo(models.Model):
name=models.CharField(verbose_name="姓名",max_length=16)
password=models.CharField(verbose_name="密码",max_length=32)
age=models.IntegerField(verbose_name="年龄")
account=models.DecimalField(verbose_name="账户余额",max_digits=10,decimal_places=2,default=0)
create_time=models.DateTimeField(verbose_name="入职时间")
#无约束
#Dep_id =models.IntegerField(verbose_name="部门ID")
#有约束
# to与那种表关联
# tofield表中关联那一列
# django自动加上_id
#删除部门表,用户表级联删除
dep = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
#删除部门表,用户表该列制空
#dep=models.ForeignKey(to="Department",to_field="id",null=True,blank=True,on_delete=models.SET_NULL)
gender_choices={
(1,"男"),
(2,"女"),
}
gender=models.SmallIntegerField(verbose_name="性别",choices=gender_choices)
ORM 生成表命令:
链接数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ry',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': 3306
}
生成表:
安装 pip install mysqlclient
# python manage.py makemigrations
# python manage.py migrate
写代码:
1、url 路由
2、Views 视图函数
3、templaes 模板(模板语法)
4、ModelForm,Form 组建(增删改查,校验)
生成HTML
错误信息
保存数据
5、cookie session 保存用户登录
6、middleware中间件 用户认证
class M1(MiddlewareMixin):
def process_request(self, request):
if request.path_info in ["/login/", "/image/code/"]:
return
info_dic = request.session.get("info")
# print(info_dic)
if info_dic:
return
else:
return redirect("/login/")
7、ORM操作
queryset = models.Admin.objects.filter(**form.cleaned_data)