Django:将行插入数据库
Posted
技术标签:
【中文标题】Django:将行插入数据库【英文标题】:Django: Insert row into database 【发布时间】:2014-07-15 03:48:14 【问题描述】:我是 Django 的新手。我通过将模型插入models.py
创建了一个表。
现在,我想在数据库中插入一行 - 表 Dodavatel
。我知道,我必须创建一个具有属性作为列的对象。但我不知道我应该把这段代码放在哪里。在models.py
?
这是我的模型:
class Dodavatel(models.Model):
nazov = models.CharField(default='', max_length=255)
dostupnost = models.IntegerField(default=0)
这是插入一行的代码:
p = Dodavatel(nazov='Petr', dostupnost=1)
p.save()
我应该把这段代码放在哪里?
【问题讨论】:
首先运行“python manage.py syncdb”创建数据库。然后,您可以根据您的模型添加行。通常这是在 View 函数中完成的。 【参考方案1】:如果您只想快速测试您的模型,您可以启动一个交互式 shell 并在那里执行您的代码。
python manage.py shell
上面的命令启动了一个用你的 Django 项目设置初始化的 python 交互式 shell。
然后你可以这样做:
from your_app_name.models import Dodavatel
p = Dodavatel(nazov='Petr', dostupnost=1)
p.save()
我不建议直接在视图中使用该代码。而不是创建一个项目,我会使用基于类的视图,如CreateView
。
【讨论】:
我写了一个脚本,将行插入到数据库中。所以这在我的 script.py 中:views.add_Dodavatel("petr", 1) 这在 views.py 中:def add_Dodavatel(nazov,dostupnost): p = Dodavatel(nazov=nazov, dostupnost=dostupnost) p.save () 但是当我运行 script.py 时出现错误:new 中的文件“C:\Python27\lib\site-packages\django\db\models\base.py”,第 92 行kwargs = "app_label": model_module.__name__.split('.')[-2] IndexError: list index out of range 您不应在手动执行的脚本中从您的 views.py 中调用函数。视图应该由 django 请求-响应循环调用。如果您想创建一个脚本来在您的数据库中插入批量数据,您应该查看:docs.djangoproject.com/en/dev/howto/custom-management-commands以上是关于Django:将行插入数据库的主要内容,如果未能解决你的问题,请参考以下文章