python基础7-Django进阶篇
1.django对数据库进行相关操作,使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。
2.配置:
a.数据库要自己登陆数据库进行创建
b.在app01下的__init__.py中配置
from django.db import models
c.需要在project同名文件夹下的settings.py中INSTALLED_APPS处进行配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01', #需要添加该行,
]
d.**********注意***********
django默认使用MySQLdb模块连接mysql,主动修改为pymysql,在project同名文件夹下的__init__.py文件中添加如下代码即可
import pymysql pymysql.install_as_MySQLdb()
e.在app01下的models.py中创建类,(即通过类创建表结构)
class UserInfo(models.Model): #id列,默认会多一列,主键且自增 #用户名列,字符串类型,指定长度 username = models.CharField(max_length=32) passw0rd = models.CharField(max_length=64)
表名自动为app01_userinfo
f..切换到project目录下,执行:
python manage.py makemigrations python manage.py migrate
3.字段的参数
null db字段是否可以为空 db_column db字段的列名 db_tablespace default db字段的默认值 primary_key db字段是否为主键 db_index db字段是否可以建立索引 unique db字段是否可以建立唯一索引 unique_for_date db字段【日期】部分是否可以建立唯一索引 unique_for_month db字段【月】部分是否可以建立唯一索引 unique_for_year db字段【年】部分是否可以建立唯一索引 auto_now 创建时,自动生成时间 auto_now_add 更新时,自动更新为当前时间 obj = UserGroup.objects.filter(id=1).update(caption="CEO") obj = UserGroup.objects.filter(id=1).first() obj.caption = "CEO" obj.save() verbose_name Admin中显示的字段为中文 blank Admin中是否允许用户输入为空 editable Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作 如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1) error_messages 自定义错误信息(字典类型),从而定制想要显示的错误信息; 字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date 如:{'null': "不能为空.", 'invalid': '格式错误'} validators 自定义错误验证(列表类型),从而定制想要的验证规则 from django.core.validators import RegexValidator from django.core.validators import EmailValidator,URLValidator,DecimalValidator,\ MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator 如: test = models.CharField( max_length=32, error_messages={ 'c1': '优先错信息1', 'c2': '优先错信息2', 'c3': '优先错信息3', }, validators=[ RegexValidator(regex='root_\d+', message='错误了', code='c1'), RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'), EmailValidator(message='又错误了', code='c3'), ] )
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

浙公网安备 33010602011771号