Django可重用的应用程序配置

时间:2016-05-16 22:35:08

标签: python django configuration portability

我有一些连接到数据库的Django中间件代码。我想把中间件变成一个可重用的应用程序(“app”),这样我就可以打包它以便分发到许多其他项目中,而不需要复制和粘贴。

我不明白可重用的应用程序应该在哪里配置自己。由于它是用于重新分发的,因此我无法自己编写中心settings.py。看看Django文档,我看到有settings.configure,但它似乎取代了整个配置,而不是让我把新数据库“拼接”成DATABASES。

为可重用的中间件应用程序配置自己的数据库连接的能力是什么?我不希望它干扰我将要安装它的应用程序的数据库。感谢。

2 个答案:

答案 0 :(得分:2)

数据库连接。

首先,我不太确定中间件连接到项目的默认数据库以外的任何其他内容是个好主意。如果您真的想要该功能,最好让用户直接将其添加到设置文件中,因为数据库连接设置在安装和安装之间会有很大差异。

如果您的应用想要进行原始查询,请执行

<button type="button" class="btn register-now btn-lg" data-toggle="modal" data-target="#register">Save changes</button>

    <div id="register" class="modal fade">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header register-now">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title">Save Changes here</h4>
                </div>
                <div class="modal-body">
                hello how are you
                    ...
                </div>
            </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->  

如果可以的话,最好使用ORM。

应用程序特定设置

一种方法是在可重用的应用中创建一个名为app_settings.py的文件。然后,您可以在其中添加如下代码。

from django.db import connection
cursor = connection.cursor()

这允许任何安装您应用的人更改主settings.py文件中的某些设置。

如果你真的想要开心,你可以在这里创建一个自定义数据库设置部分,并允许用户在settings.py文件中覆盖它。

答案 1 :(得分:2)

您可以按照Django调试工具栏的方法进行操作。它包含一个app配置类,并覆盖ready方法中的设置。

您可以看到代码here