Python中如何正确设置和使用Django库名

django 的数据库表名怎么设置默认为大写,,自动的生成的表,比如(auth_group,auth_group_permissions,auth_permission 等等)


Python中如何正确设置和使用Django库名
2 回复

在Django中,库名(通常指app名)的设置和使用非常关键,直接影响到项目的结构和数据库表的生成。核心就两点:创建时用python manage.py startapp your_app_name,然后在settings.pyINSTALLED_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用于:

  • 数据库表名前缀:模型MyModelblog_app中,表名会是blog_app_mymodel
  • 反向查找URLreverse('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 定义源代码才能实现, 以你的水平应该还没能力改。

回到顶部