django:将定制代码集成到django项目中

时间:2018-12-30 08:51:18

标签: python django

Noob和Django一起在这里。对于Django应用,我具有以下文件夹结构,该结构位于主项目文件夹中。

my_app/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

我写了一个命令行python脚本来获取JSON文件并将其解析为显示非常具体的信息。它使用请求库进行JSON和数据解析。

我的问题是如何将脚本集成到Django应用中。特别是如何将其逻辑以及放置在哪个文件下?我的想法是创建另一个文件并将其导入视图。并将它们传递给render函数-这可能不是正确的和Django的方式,但是有点卡在了那里。哦,我不使用任何数据库,该脚本使用文本文件并将其写入。

2 个答案:

答案 0 :(得分:0)

我在Django应用中放置了一个名为services的文件夹,并为每个非Django的东西添加了一个文件夹。但这基本上只是方便,Django在这里没有对您施加限制。

答案 1 :(得分:0)

由于您要在视图中包含脚本,因此应该:

  1. 您的JSON文件不经常更改
  2. 如果您的Django应用程序多次生成(例如,如果您使用uwsgi或gunicorn),则有多个请求不是问题

如果是这种情况,那么任何Pythonic解决方案都可以。

如果1不适用,则可能是您应实施自己的middleware,应要求,

  1. 如果JSON文件已过期(例如,如果最后一次获取是在很久以前发生的话),则获取
  2. 在请求中添加JSON文件内容:通过这种方式,您不必公开保存JSON文件的位置

如果有多个实例,则可以做与1大致相同的操作,但是您可能决定将JSON值及其到期时间存储在单独的存储中。您还可以将uwsgi / guincorn配置为在启动时获取JSON文件:这样,您就不会在启动时多次获取JSON文件。然后,如果需要,您的中间件将进行工作以使其保持最新状态。