前言
django的models新增數據庫表時,若是不設置主鍵,會默認新增一個id爲主鍵,若是咱們想本身設置一個字段爲主鍵,需加個參數primary_key=Truepython
默認id主鍵
新增一張用戶表,表名爲user 字段user_name, psw ,mail 都是字符串類型,設計以下數據庫
# models.py from django.db import models # Create your models here. # 咱們新建了一個Person類,繼承自models.Model, class Person(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() # 新增一張用戶表,表名爲user 字段user_name, psw ,mail 都是字符串類型 class User(models.Model): user_name = models.CharField(max_length=30) psw = models.CharField(max_length=30) mail = models.CharField(max_length=30)
cmd執行makemigrations和migratedjango
python manage.py makemigrations
python manage.py migratemarkdown
而後就能夠看到hello_user表新增成功了,默認多一個字段id爲主鍵post
設置主鍵primary_key
新增一張用戶表,表名爲user 字段user_name(主鍵), psw ,mail 都是字符串類型,咱們設置user_name爲主鍵,讓用戶名不重複,設計以下spa
# models.py from django.db import models # Create your models here. # 咱們新建了一個Person類,繼承自models.Model, class Person(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() # 新增一張用戶表,表名爲user 字段user_name, psw ,mail 都是字符串類型 class User(models.Model): user_name = models.CharField(max_length=30, primary_key=True) # 設置爲主鍵 psw = models.CharField(max_length=30) mail = models.CharField(max_length=30)
cmd執行makemigrations和migrate設計
python manage.py makemigrations
python manage.py migratecode
而後就能夠看到hello_user表新增成功了,主鍵user_name就會代替默認的id主鍵了blog