请求与响应
-
request是一个对象,封装了用户发送过来的所有相关数据
request.method获取请求方式request.GET在url上传递值request.POST在请求体中提交数据Httpqesponse()字符串内容返回给请求者render(request, 'xx.html',{"xx":"xx"})读取html内容,将字符串替换内容redirect("url地址")让浏览器定位到其他页面
-
{% csrf_token%}安全验证
连接Mysql(ORM框架)
安装第三方模块
pip install mysqlclient
ORM
- 启动Mysql服务,创建数据库
- 用settings.py在Django连接数据库
- django操作表在models.py中
from django.db import models
class UserInfo(models.Model): #创建类
id = models.BigAutoField(verbose_name="ID",primary_key=True)
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
- 提交数据库内容:
python3.11 manage.py makemigrationspython3.11 manage.py migrate
修改列时:要么设置默认值
defalut=?,要么选择1然后手动填充值,要么设置null=True,blank=True
增删改查命令
-
在表中新建添加数据 (
insert into app01_department (title) values ("销售部"))- 在views.py中先导入app中的models
Dapartment.objects.create(title="销售部")
-
删除数据
UserInfo.objects.filter(id=3).delete()筛选id=3的删掉UserInfo.objects.all.delete()
-
获取数据
- data_list = [对象,对象,对象] QuerySet类型
data_list = UserInfo.objects.all()data_list = UserInfo.objects.filter(id=3).first()获取一行数据,first()获取第一条数据
for obj in data_list: print(obj.jd,obj.name) ``` -
修改数据
data_list = UserInfo.objects.all().update(age=999)
数据库表结构
- decimal 准确的小数值
account = models.DecimalField(verbose_name="余额",max_digits=18,decimal_places=2)max_digits是最大数字总个数,decimal_places是小数位占2id = models.BigAutoField(verbose_name="ID",primary_key=True)BigAutoField数字递增,verbose_name是注释名,AutoField是整数型depart = models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)to表示与哪张表关联,to_field表示与表中哪一列关联,CASCADE表示级联删除depart = models.ForeignKey(to="Department",to_field="id",null=True,on_delete=models.SET_NULL)置空gender_choices = ( (1,"男"),(2,"女"), )``gender = models.SmallIntegerField(verbose_name="性别",choices=gender_choices)SmallIntegerField小整型,choice做约束