【问题标题】:sqlite configuring with django使用 django 配置 sqlite
【发布时间】:2016-05-08 12:28:05
【问题描述】:

我被分配了通过 django 使用 sqlite 建立在线数据库的任务,其中将包含信息列。我的问题是我不知道哪个正在建立信息将进入的表 - 我的 models.py 脚本还是应该使用“CREATE TABLE”命令来完成? 我的 models.py 脚本中的代码示例如下:

    class Person(models.Model):
       firstname=models.CharField(max_length=100)
       lastname=models.CharField(max_length=100)

给我的教程推荐了这个命令:

    insert into freezer_person (firstname,last name) values('Louis','Pasteur')

但是在执行这个命令时,我自然会得到一个错误,说“表不存在”,即我必须使用“CREATE TABLE”命令。 所以当我尝试时:

           "CREATE TABLE in freezer_person(...)" 

它返回“in”在语法上不正确。 所以我的问题是如何创建一个从 models.py 中获取信息的表?- 我似乎找不到任何关于此的信息...

【问题讨论】:

  • 你用的是什么教程? django的迁移(或旧版本syncdb)什么都没有?

标签: python django sqlite database-design


【解决方案1】:

您不创建表格; Django 通过migrations 系统为你做这件事。

tutorial 完全涵盖了这一切。

【讨论】:

    【解决方案2】:

    models.py 中的模型类定义了您的表格:每个模型类都将在表格中转置。模型类的每个属性将是相应表中的一列。模型类的每个实例都将是该表中的一行。

    因此,当您要创建表时,您可以在应用的 models.py 文件中定义模型类,然后运行

    python manage.py makemigrations
    

    它跟踪对模型类所做的更改并生成一个迁移文件,其中包含要应用于数据库的 sql 语句,然后将它们应用于数据库,您运行

    python manage.py migrate
    

    【讨论】:

    • 感谢 cmets。我已经进行了所有必要的迁移并将值插入到表中 - “select * from freezer_person;”但是没有返回任何东西......
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2011-12-28
    • 2017-07-07
    • 2014-01-16
    • 2011-01-16
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多