django--models

link: https://docs.djangoproject.com/en/1.10/ref/settings/#databases

1.MySQL數(shù)據(jù)庫連接方式


DATABASES = {
    ‘default‘: {
    ‘ENGINE‘: ‘django.db.backends.mysql‘,
    ‘NAME‘:‘dbname‘,
    ‘USER‘: ‘root‘,
    ‘PASSWORD‘: ‘xxx‘,
    ‘HOST‘: ‘‘,
    ‘PORT‘: ‘‘,
    }
}

2、開始創(chuàng)建表,數(shù)據(jù)需要在models.py文件中創(chuàng)建

class UserInfo(models.Model):
    # CharField類型不能為空,最少要指定一個長度
    user = models.CharField(max_length=32)
    email = models.EmailField(max_length=32)
    pwd = models.CharField(max_length=32)
    user_type = models.ForeignKey(‘UserType‘)

class UserType(models.Model):
    nid = models.AutoField(primary_key=True)
    caption = models.CharField(max_length=16)
注:在創(chuàng)建外鍵的時候直接寫上UserType和‘UserType‘的區(qū)別就是python程序從上到下解釋的順序問題,如果把UserType這個類寫到下面就會沒事了

運行Djando項目程序,執(zhí)行命令創(chuàng)建數(shù)據(jù):

python3 manage.py makemigrations
python3 manage.py migrate

創(chuàng)建表的的參數(shù):

技術(shù)分享
1、models.AutoField  自增列 = int(11)
  如果沒有的話,默認會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須將給列設(shè)置為主鍵 primary_key=True。
2、models.CharField  字符串字段
  必須 max_length 參數(shù)
3、models.BooleanField  布爾類型=tinyint(1)
  不能為空,Blank=True
4、models.ComaSeparatedIntegerField  用逗號分割的數(shù)字=varchar
  繼承CharField,所以必須 max_lenght 參數(shù)
5、models.DateField  日期類型 date
  對于參數(shù),auto_now = True 則每次更新都會更新這個時間;auto_now_add 則只是第一次創(chuàng)建添加,之后的更新不再改變。
6、models.DateTimeField  日期類型 datetime
  同DateField的參數(shù)
7、models.Decimal  十進制小數(shù)類型 = decimal
  必須指定整數(shù)位max_digits和小數(shù)位decimal_places
8、models.EmailField  字符串類型(正則表達式郵箱) =varchar
  對字符串進行正則表達式
9、models.FloatField  浮點類型 = double
10、models.IntegerField  整形
11、models.BigIntegerField  長整形
  integer_field_ranges = {
    ‘SmallIntegerField‘: (-32768, 32767),
    ‘IntegerField‘: (-2147483648, 2147483647),
    ‘BigIntegerField‘: (-9223372036854775808, 9223372036854775807),
    ‘PositiveSmallIntegerField‘: (0, 32767),
    ‘PositiveIntegerField‘: (0, 2147483647),
  }
12、models.IPAddressField  字符串類型(ip4正則表達式)
13、models.GenericIPAddressField  字符串類型(ip4和ip6是可選的)
  參數(shù)protocol可以是:both、ipv4、ipv6
  驗證時,會根據(jù)設(shè)置報錯
14、models.NullBooleanField  允許為空的布爾類型
15、models.PositiveIntegerFiel  正Integer
16、models.PositiveSmallIntegerField  正smallInteger
17、models.SlugField  減號、下劃線、字母、數(shù)字
18、models.SmallIntegerField  數(shù)字
  數(shù)據(jù)庫中的字段有:tinyint、smallint、int、bigint
19、models.TextField  字符串=longtext
20、models.TimeField  時間 HH:MM[:ss[.uuuuuu]]
21、models.URLField  字符串,地址正則表達式
22、models.BinaryField  二進制
23、models.ImageField   圖片
24、models.FilePathField 文件


更多字段
1、null=True
  數(shù)據(jù)庫中字段是否可以為空
2、blank=True
  django的 Admin 中添加數(shù)據(jù)時是否可允許空值
3、primary_key = False
  主鍵,對AutoField設(shè)置主鍵后,就會代替原來的自增 id 列
4、auto_now 和 auto_now_add
  auto_now   自動創(chuàng)建---無論添加或修改,都是當前操作的時間
  auto_now_add  自動創(chuàng)建---永遠是創(chuàng)建時的時間
5、choices
GENDER_CHOICE = (
        (u‘M‘, u‘Male‘),
        (u‘F‘, u‘Female‘),
    )
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default  默認值
8、verbose_name  Admin中字段的顯示名稱
9、name|db_column  數(shù)據(jù)庫中的字段名稱
10、unique=True  不允許重復(fù)
11、db_index = True  數(shù)據(jù)庫索引
12、editable=True  在Admin里是否可編輯
13、error_messages=None  錯誤提示
14、auto_created=False  自動創(chuàng)建
15、help_text  在Admin中提示幫助信息
16、validators=[]
17、upload-to
18、related_name 關(guān)聯(lián)對象反向引用描述符。
related_name='test'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容