Python中如何正确设置和使用Django库名
django 的数据库表名怎么设置默认为大写,,自动的生成的表,比如(auth_group,auth_group_permissions,auth_permission 等等)
Python中如何正确设置和使用Django库名
在Django中,库名(通常指app名)的设置和使用非常关键,直接影响到项目的结构和数据库表的生成。核心就两点:创建时用python manage.py startapp your_app_name,然后在settings.py的INSTALLED_APPS里用'your_app_name.apps.YourAppNameConfig'(推荐)或直接'your_app_name'注册。
1. 创建App并理解命名
运行命令创建应用,your_app_name就是你的库名,建议用单数、小写和下划线,比如blog_app。
python manage.py startapp blog_app
2. 在项目中注册App
创建后必须在主项目的settings.py中注册才能生效。最佳实践是使用应用配置类。
# myproject/settings.py
INSTALLED_APPS = [
...
# 方式1(推荐):使用应用配置类,更明确,便于后期信号等高级配置
'blog_app.apps.BlogAppConfig',
# 方式2:直接使用app名(简单,但功能受限)
# 'blog_app',
]
应用配置类在blog_app/apps.py中自动生成:
# blog_app/apps.py
from django.apps import AppConfig
class BlogAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'blog_app' # 这个`name`属性就是Django内部识别的标识
3. 关键点:name属性是真正的标识符
无论你在INSTALLED_APPS里怎么写,Django最终通过配置类的name属性(或直接使用app名时对应的字符串)来唯一标识这个应用。这个name用于:
- 数据库表名前缀:模型
MyModel在blog_app中,表名会是blog_app_mymodel。 - 反向查找URL:
reverse('blog_app:view_name')。 - 静态文件命名空间:
{% static 'blog_app/style.css' %}。
4. 后续使用
- 定义模型:在
blog_app/models.py中定义。 - 创建迁移:
python manage.py makemigrations blog_app - URL配置:在主
urls.py中包含path('blog/', include('blog_app.urls')),并在blog_app内创建urls.py。
总结:创建时命名,注册时用配置类,Django靠name属性识别一切。
自定义的 model 可以指定表名。
https://docs.djangoproject.com/en/2.2/topics/db/models/#meta-options
https://docs.djangoproject.com/en/2.2/ref/models/options/
你说的那个几个自动生成的表是 内置 auth 应用模块中定义的类生成的,要魔改那部分的 Model 定义源代码才能实现, 以你的水平应该还没能力改。

