温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django创建表的方法

发布时间:2020-08-07 10:14:59 来源:亿速云 阅读:181 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关django创建表的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

Django中,与数据库相关的模块是model模块,它提供了一种简单易操作的API方式与数据库交互,它是通过ORM映射的方式来操作数据库,一个类对应数据库一张表,一个类属性,对应该表的一个字段,一个实例化的类对象就是一个表中的一行数据信息。在开发的阶段,工程师只需要python语言本身进行代码设计,而不用太过于分散注意力去操作SQL原生操作语句,这样的方法既有它的优点,同样也有不足之处。

它们优缺点的大致如下:

优点:

1、实现了代码与数据库的解耦合

2、开发者不需要操作太多的原生SQL,可以提高开发效率

3、防止SQL注入,通过对象操作的方式,默认就是防止SQL注入

缺点:

1、牺牲性能,对象转换到SQL会存在一定的消耗

2、当需要操作较复杂的语句时,用ORM对象操作的方式很难实现

 ORM与数据库的映射关系如下:

表名--------》类名

字段--------》属性

表记录-----》类实例化对象

 ORM的两大主要功能:

操作表:

--创建表

--修改表

--删除表

操作表数据行:增、删、改、查

Django自带的数据库为sqlite3,如果需要使用其他数据库,需要其他的准备工作,并且,使用其他数据库,需要自己提前建好数据库,然后通过Django去连接,Django并不会创建数据库。

完整过程:

一、编写模型类

在Django项目的APP应用下的models.py文件中编写类,每一个类就是一个最终都会被映射为一个数据表。在写类之前有个准备工作,在settings.py文件中的“INSTALLED_APPS”要先加入自己的APP应用,告诉Django有这个应用。如图:

django创建表的方法

表分为单表,一对一表,一对多表,多对多表,就是表一般不会独立存在,总会与其他表存在联系。我创建了三个表,一个表为Publish(出版社),一个表为Author(作者),还有一个表Book(书籍),其中表书籍与表出版社是外键关系,与作者是多对多的关系。

 class Publish(models.Model):
 2     name = models.CharField(max_length=64)
 3     city = models.CharField(max_length=63,null=True)
 4     def __str__(self):
 5         return self.name
 6 
 7 
 8 class Author(models.Model):
 9     name = models.CharField(max_length=30)
10     sex = models.CharField(max_length=20)
11     def __str__(self):
12         return self.name
13 
14 class Book(models.Model):
15     title = models.CharField(max_length=64)
16     price = models.IntegerField()
17     color = models.CharField(max_length=64)
18     page_num = models.IntegerField(null=True)
19     publisher = models.ForeignKey("Publish",on_delete=models.CASCADE,null=True)  
#一对多的关系。2.0django中,当有主外键和其他对应关系时,需要设置。
20     author = models.ManyToManyField("Author")
21     def __str__(self):
22         return  self.title

二、生成数据表

创建类的代码已经,写好,此时需要两句代码将类转换成对应的数据表:

python manage.py makemigrations    #将类转换成数据表结构
python manage.py  migrate               #根据上一句代码生成数据表

上面两句代码先后执行,不出意外,就会在数据库里面生成对应的数据表。其中,第一句执行完,会在app应用下的migrations的文件夹下生成操作的记录文件“0001_initial.py”:

django创建表的方法

这个是记录models里面改动的执行记录。

最终生成的数据表如下:

django创建表的方法

感谢各位的阅读!关于django创建表的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI