最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django如何创建表

    正文概述    2020-10-29   553

    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如何创建表

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元