1、数据库配置
在创建的工程项目中找到settings.py文件,该文件可以用来配置使用的数据库,django模式使用自带的SQLite。
现在将默认的数据库改为MySQL
注意:需要先在MySQL中创建需要使用的库,如使用命令创建一个库CREATEDATABASEdjangodemo;
DATABASES={default:{ENGINE:django.db.backends.mysql,NAME:djangodemo,USER:xxx,PASSWORD:xxxxxx,HOST:xxxxxxxxxx,PORT:#ENGINE:django.db.backends.sqlite3,#NAME:os.path.join(BASE_DIR,db.sqlite3),}}2、创建数据库表
1、创建数据库表
2、数据库迁移
3、migrate命令只会为在INSTALLED_APPS里声明了的应用进行数据库迁移。
#创建命令:pythonmanage.pymigrateE:\PyProject\Development\djangodemopythonmanage.pymigrateSystemcheckidentifiedsomeissues:WARNINGS:?:(mysql.W)MySQLStrictModeisnotsetfordatabaseconnectiondefaultHINT:MySQLsStrictModefixesmanydataintegrityproblemsinMySQL,suchasdatatruncationuponinsertion,byescalatingwarningsintoerrors.Itisstronglyre 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的自定义一个自增列,必须将给列设置为主键primary_key=True。2、models.CharField 字符串字段 必须max_length参数3、models.BooleanField 布尔类型=tinyint(1) 不能为空,Blank=True4、models.ComaSeparatedIntegerField 用逗号分割的数字=varchar 继承CharField,所以必须max_lenght参数5、models.DateField 日期类型date 对于参数,auto_now=True则每次更新都会更新这个时间;auto_now_add则只是第一次创建添加,之后的更新不再改变。6、models.DateTimeField 日期类型datetime 同DateField的参数7、models.Decimal 十进制小数类型=decimal 必须指定整数位max_digits和小数位decimal_places8、models.EmailField 字符串类型(正则表达式邮箱)=varchar 对字符串进行正则表达式9、models.FloatField 浮点类型=double10、models.IntegerField 整形11、models.BigIntegerField 长整形 integer_field_ranges={ SmallIntegerField:(-,), IntegerField:(-,), BigIntegerField:(-,), PositiveSmallIntegerField:(0,), PositiveIntegerField:(0,), }12、models.IPAddressField 字符串类型(ip4正则表达式)13、models.GenericIPAddressField 字符串类型(ip4和ip6是可选的) 参数protocol可以是:both、ipv4、ipv6 验证时,会根据设置报错14、models.NullBooleanField 允许为空的布尔类型15、models.PositiveIntegerFiel 正Integer16、models.PositiveSmallIntegerField 正smallInteger17、models.SlugField 减号、下划线、字母、数字18、models.SmallIntegerField 数字 数据库中的字段有:tinyint、smallint、int、bigint19、models.TextField 字符串=longtext20、models.TimeField 时间HH:MM[:ss[.uuuuuu]]21、models.URLField 字符串,地址正则表达式22、models.BinaryField 二进制23、models.ImageField图片24、models.FilePathField文件参数1、null=True 数据库中字段是否可以为空2、blank=True django的Admin中添加数据时是否可允许空值3、primary_key=False 主键,对AutoField设置主键后,就会代替原来的自增id列4、auto_now和auto_now_add auto_now自动创建---无论添加或修改,都是当前操作的时间 auto_now_add自动创建---永远是创建时的时间5、choicesGENDER_CHOICE=((uM,uMale),(uF,uFemale),)gender=models.CharField(max_length=2,choices=GENDER_CHOICE)6、max_length7、default 默认值8、verbose_name Admin中字段的显示名称9、name
db_column 数据库中的字段名称10、unique=True 不允许重复11、db_index=True 数据库索引12、editable=True 在Admin里是否可编辑13、error_messages=None 错误提示14、auto_created=False 自动创建15、help_text 在Admin中提示帮助信息16、validators=[]17、upload-to
创建模型
#