用于将值加载到表中的Django Startup脚本

时间:2015-01-07 16:03:12

标签: django django-models

在DB中有6个表3个每次都有相同的值,就像静态值一样,当我们执行python manage.py runserver时,这些值需要加载到表中。 对于这个方法,我需要有一个脚本 任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

我会将它们加载到CONTEXT_PROCESSOR中,以便它们在所有模板中都可用。

如果您需要它作为全局变量可用,只需将它们加载到您导入到您需要的views.py文件中的自定义script.py文件中。

编辑:

你还应该考虑从数据库中缓存结果,并保存在SESSION中,或者如果网站可以看到大量流量,则查看运行memcached。

答案 1 :(得分:0)

如果你有一些表每次都有相同的值(staic值) 您可以编写自己的[fixture] [1],它们定义我们要存储到这些表中的所有值 您可以在app文件夹中创建名称为fixtures的目录。 目录示例:

|- my_app
|    |- fixtures
|           |- static_content.json

static_content.json看起来像

[
  {
    "model": "myapp.model1",
    "pk": 1,
    "fields": {
      "first_name": "test",
      "last_name": "Test_last"
    }
  },
  {
    "model": "myapp.model2",
    "pk": 1,
    "fields": {
      "age": "21",
      "email": "foo@foo.com"
    }
  }
]

在通过python manage.py runserver启动服务器之前,我们可以使用以下命令将我们的灯具加载到我们的数据库中。

python manage.py loaddata <fixturename>
Ex.   python manage.py loaddata my_app/static_content.json

上面的命令将作为启动脚本,用于将值加载到db表中。