【问题标题】:Django: Insert row into databaseDjango:将行插入数据库
【发布时间】: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 函数中完成的。

标签: python mysql django insert


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 2022-01-02
  • 2012-08-05
  • 2017-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多