Python--day63(ORM补充(1对1、Django类型)分页、CSRF攻击)
作者:互联网
1. 一对一表
1.1 创建
class UserInfo(models.Model): name = models.CharField(max_length=32, null=True) class Salary(models.Model): money = models.CharField(max_length=32, null=True) su = models.OneToOneField('UserInfo', null=True)
1.2 查询
# 1、普通查询 res = models.UserInfo.objects.all() print(res) for row in res: print(row.id, row.name) # 2、正向查询 res = models.Salary.objects.all() for row in res: print(row.su.name, row.money) # 3、反向查询 res = models.UserInfo.objects.all() for row in res: print(row.name, row.salary.money)
2. Django类型
3、参数
- 参数: max_length=32 null=True : 可以设置为null db_index=True : 设置索引 default : 设置默认值 unique : 设置唯一索引 db_column: 设置一个列名 unique_together: 联合唯一索引 index_together :普通联合索引 class Meta: unique_together = ( ('money', 'us_id'), .... ) index_together = ( ('money', '') .... )
4、Django-admin
djagno-admin: django自带的管理后台系统 命令生成: python3 manage.py createsuperuser 想要管理自己生成的表: admin.py: from app01 import models admin.site.register(models.UserInfo) django-admin中的列类型: EmailField(CharField): - 字符串类型,Django Admin以及ModelForm中提供验证机制 IPAddressField(Field) - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制 GenericIPAddressField(Field) - 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6 - 参数: protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6" unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both" URLField(CharField) - 字符串类型,Django Admin以及ModelForm中提供验证 URL SlugField(CharField) - 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号) CommaSeparatedIntegerField(CharField) - 字符串类型,格式必须为逗号分割的数字 UUIDField(Field) - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证 FileField(Field) djagno-admin中的参数 : verbose_name Admin中显示的字段名称 blank Admin中是否允许用户输入为空 editable Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作 choices = ( (1, '男'), (2, '女') ) gender = models.IntegerField(choices=chocies) id name gender (男女)
5、分页
6、CSRF攻击
标签:name,Python,res,Django,models,day63,Admin,row 来源: https://www.cnblogs.com/wangyong123/p/11201929.html