python测试开发django(10)--models设置主键primary_key

摘要:
前言在django模型中添加数据库表时,如果未设置主键,则默认情况下将添加ID作为主键。如果我们想将一个字段设置为主键,我们需要添加一个参数primary_key=True。默认ID主键添加一个用户表,其中包含名称account和字段user_name、pwd和mail,这些都是字符串类型。设计如下:#models.pyfromdjango.dbimportmodels#Createyourmodelshere.cla

前言

django的models新增数据库表时,如果不设置主键,会默认新增一个id为主键,如果我们想自己设置一个字段为主键,需加个参数primary_key=True

默认id主键

新增一张用户表,表名为account,字段user_name,pwd,mail都是字符串类型,设计如下;

#models.py
from django.db import models

# Create your models here.
class User(models.Model):
    name=models.CharField(max_length=30)
    age=models.IntegerField()

class Account(models.Model):
    user_name=models.CharField(max_length=20)
    pwd=models.CharField(max_length=20)
    mail=models.CharField(max_length=30)

 cmd 执行makemigrations和migrate

python manage.py makemigrations
python manage.py migrate

 然后就可以看到xjyn_account表新建成功了,默认多一个字段id为主键;

python测试开发django(10)--models设置主键primary_key第1张

 设置主键primary_key

新增一张用户表,表名为Users,字段user_name(主键),psw,mail都是字符串类型,我们设置user_name为主键,让用户名不重复,设计如下

#models.py
from django.db import models

# Create your models here.
class User(models.Model):
    name=models.CharField(max_length=30)
    age=models.IntegerField()

class Users(models.Model):
    user_name=models.CharField(max_length=20,
                               primary_key=True)
    pwd=models.CharField(max_length=20)
    mail=models.CharField(max_length=30)

cmd 执行makemigrations和migrate

python manage.py makemigrations
python manage.py migrate

然后就可以看到xjyn_users表新增成功了,主键user_name就会代替默认的id主键了

python测试开发django(10)--models设置主键primary_key第2张

免责声明:文章转载自《python测试开发django(10)--models设置主键primary_key》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇双系统——在win10系统保存和查看Ubuntu系统中的文件——Linux ReaderEasyUI 动态更新列下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

安装django(使用国内镜像)

1.安装django之前需要安装python及pip, python与django的对应版本请自行百度 2.安装之后,需要配置python及pip的环境变量,具体配置方法请自行百度 3.django的安装:使用pip install django 默认安装最新版本的django 安装时候若有如下报错: File "c:installpython37libs...

Centos7.3环境下安装最新版的Python3.8.4

截止到目前时间为止,Python官网上最新的版本是Python3.8.4。因为云服务器上centos7.X都是默认的Python2.7环境,现在普遍都是Python3 以上的版本作为开发环境。 这里退出Python命令行的方法有: 输入exit(),回车 输入quit(),回车 直接按 ctrl+z 首先去Python的官网下下载Python包...

中国裁判文书网全网最新爬虫分析

本文主要介绍交流一下裁判文书网的爬去规则,我主要是因为公司要求而去分析这个网站的,一看是看该网站服务器各种卡,蛋疼。用python的selenium模块去写太麻烦了,做不到大量爬取,迫不得已自己不断研究,终于攻破了该网站的js代码参数     思路主要通过python去破解网站js的加密数据。该网站请求数据都是通过post请求的,分析一下he...

python测试开发工具库汇总(转载)

Web UI测试自动化splinter - web UI测试工具,基于selnium封装。 selenium - web UI自动化测试。 mechanize- Python中有状态的程序化Web浏览链接selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 hitch...

Python与c/c++混合编程

https://blog.csdn.net/hobertony_7/article/details/88875246?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&dist_request_id=&dept...

python的整数没有补码一说

在刷题过程中,发现Python有一个和其他语言完全不一样的地方,就是对负数的二进制表示。Python里的数是无所谓Overflow的,即没有位数限制,因此也就无所谓补码,因为补码都是相对于位数来说的,32位补码和16位补码,肯定是不一样的。但是这样就导致了一个问题,就是无法直接得到32位二进制补码。 >>> bin(1) '0b1'...