首页 > 其他 > 详细

Django——遇到的一些坑(问题)

时间:2020-06-01 19:52:31      阅读:62      评论:0      收藏:0      [点我收藏+]

配置Django提供的可视化工具

  • 第一步

    技术分享图片

     

     

  • 第二步

    技术分享图片

     

     

    技术分享图片

    尝试连接成功

    技术分享图片

     技术分享图片

     

     

 

 

已经创建好一个表了,并且插入了数据,此时要增加一些字段

  • 方法一

    class Book(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharFiled(max_length=20)
    price = models.IntegerField()
    publish_date = models.DateField()
    publisher = models.CharField(max_length=16)
    author = models.CharField(max_length=16,null=True,default=‘牧羊小董‘)
    在添加的字段里面设置这样的属性:null=True,default=‘牧羊小董‘。
    再次输入:
    python manage.py makemigrations
    python manage.py migrate
    这样新字段就更新进去了。
  • 方法二:删除对应的表,重新创建表

    如果删除一个表?

    终端输入:
    python manage.py makemigrations
    会在migrations目录下,产生一个000x_initial.py 临时脚本文件,但是此时脚本不执行。
    再次输入:
    python manage.py migrate
    Django会自动执行000x_initial.py文件,就会在对应的数据库中产生一个对应表。

    我们接下来,先将临时脚本文件000x_initial.py 删除,再次输入指令:

    class Book(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharFiled(max_length=20)
    price = models.IntegerField()
    publish_date = models.DateField()
    publisher = models.CharField(max_length=16)
    author = models.CharField(max_length=16,null=True,default=‘牧羊小董‘)
    python manage.py makemigrations
    会再次产生一个临时文件000x_initial.py
    但是当我们再次输入?python manage.py migrate
    然而并没有执行此临时文件,我原来的表没有更新,没有增加新的字段author
    • 问题在于指令两个命令的过程,没有研究透彻。

      终端输入这个指令:
      python manage.py makemigrations
      会在migrations目录下,产生一个000x_initial.py临时脚本文件,但是此时脚本不会执行
      再次python maage.py migrate
      Django会自动执行000x_initial.py文件,并且会在django_migrations这个表中,留有一条执行过这个脚本文件的记录,就会在对应的数据库中生成一个对应表。
      当下次再次执行脚本文件时,会在和这个django_migrations表中查询是否执行过此临时文件,如果执行过,则不再执行。

      所以,我们如果想删除对应表在重新执行,我们应该删除000x_initial.py临时文件并且删除django_migrations表中相应的执行过的记录,还要删除mysql数据库中对应的这个表。

      技术分享图片

      技术分享图片

      • 删除mysql数据库中对应的表

        技术分享图片

         

         

        技术分享图片

      • 删除临时表

      • 删除表记录

 

利用可视化工具,插入时间问题

插入的时间有一个时区问题,我们应该在settings配置文件中:
# TIME_ZONE = ‘UTC‘ 不用UTC
TIME_ZONE = ‘Asia/Shanghai‘

 

Django——遇到的一些坑(问题)

原文:https://www.cnblogs.com/muyangxiaodong/p/13026752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!