Skip to main content
 首页 » 编程设计

python之在Django中自动导入自定义文件

2024年11月01日38kenshinobiy

我有一个 Django 项目,其中包含一些文件,显然,Django 不会自动发现这些文件。我的解决方法是将它们导入 urls.py 以便 Django 可以看到它们。这是我的 urls.py 的样子:

from django.contrib import admin 
from django.urls import path 
 
from custom_file_1 import *  # "unused" import 
from custom_file_2 import *  # "unused" import 
 
urlpatterns = [ 
    ... 
] 
 

我的 IDE 认为注释导入未使用,因为它们未被使用,但它们对于 Django 可以处理这些文件至关重要。

还有一个问题:有什么好的方法可以让 Django 看到这些文件吗?以及如何做到这一点?

请您参考如下方法:

用通配符导入东西通常不是一个好主意。想象一下,在其中一个自定义文件中存在一些名为 path 的对象,然后它将覆盖对 path 函数的引用,您从 django.urls 导入。

通常在 AppConfig 中导入此类文件(例如包含信号等)。

在应用程序的目录中,有一个__init__.py文件。你可以写

# app/__init__.py 
 
default_app_config = 'app.config.CustomAppConfig'

然后在您的应用程序目录中定义应用程序的配置:

# app/config.py 
 
from django.apps import AppConfig 
 
 
class CustomAppConfig(AppConfig): 
    name = 'app' 
 
    def ready(self): 
        import custom_file_1  # noqa 
        import custom_file_2  # noqa

在这里# noqa用于忽略 flake8 警告。