Code前端首页关于Code前端联系我们

使用 Django 开发应用程序并不容易,首先需要正确配置

terry 2年前 (2023-09-25) 阅读数 61 #后端开发

使用Django开发应用程序时,需要进行某些配置。除了常用的数据库、系统语言、静态文件配置信息之外,还有几个配置项。该配置信息存储在配置文件中。 Django的配置文件是一个Python模块,所有配置元素都是模块级变量。

不会出现语法错误

可以使用Python语法动态设置配置值

可以引入其他配置文件中的变量

使用时指定配置文件使用的配置文件通过环境变量 DJANGO_SETTINGS_MODULE 修改当前项目。默认情况下,在这种情况下,指定 .

#!/usr/bin/env python
import os
import sys

if __name__ == '__main__':
    ('DJANGO_SETTINGS_MODULE', '')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line()

要使用 WSGI 部署 Django 应用程序,请在

"""
WSGI config for website project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see

"""

import os

from django.core.wsgi import get_wsgi_application

('DJANGO_SETTINGS_MODULE', '')

application = get_wsgi_application()

中指定配置文件。如果配置文件中缺少特定配置的设置,则将使用 Django 的默认值,并且 Django 为每个配置项提供默认值,默认的配置文件路径为 django/conf/ 中
Django 按照以下顺序加载配置文件

  1. 加载
  2. 加载项目特定的配置文件,使用项目特定的配置文件覆盖默认的

引用Django配置信息

from django.conf import settings

!由于配置文件是在Django编译时加载的,因此系统配置在运行时无法更改。

Database
DATABASES 用于指定站点使用的数据库类型和连接方法。它是一个嵌套的字典对象。字典的键是数据库别名,字典的值是数据库配置信息。
Django 支持多种常见数据库,包括 PostgreSQL、MySQL、SQLite、Oracle 等。

默认配置

DATABASES = {
    'default': {
        'ENGINE': '',
        'NAME': (BASE_DIR, ''),
    }
}
or
DATABASES = {
    'default': {
        'ENGINE': '',
        'NAME': "数据库名",
        'USER': "数据库用户名",
        'PASSWORD': "数据库密码",
        'HOST': "数据库主机地址",
        'PORT': "数据库端口号",
    }
}
  • ENGINE:数据库连接引擎,针对不同数据库databasename:❀NAME:数据库名称
  • PASSWORD:数据库用户密码
  • HOST:数据库主机名
  • PORT:数据库开放端口号

数据库路由配置
路由数据库执行数据库时会选择数据库。根据路由配置执行操作。默认值是一个空列表:[],其中列表元素是实现特殊路由方法的Python类的路径。
要使用数据库路由,请创建一个必须实现以下方法的数据库路由类:

  • db_for_read(model, **tip):指定用于读取模型的数据库。
  • db_for_write(model, **tip):指定写入模型的数据库。
  • allow_relation(obj, obj2, **hints):如果允许 obj1 和 obj2 之间的关系,则返回 True;如果禁止这种关系,则返回 False;如果两者之间没有约束,则返回 None。该方法仅用于验证两个对象之间是否可以存在外键关联或多对多关联。
  • allow_migrate(db, app_label, model_name=None, **tip):该方法用于判断数据库是否可以进行迁移操作。第一个参数db是数据库别名。如果该方法返回True,则表示允许迁移操作,如果返回False,则表示不允许迁移操作,如果返回None,则表示没有特殊规定。 app_label参数是进行迁移操作的应用程序的名称。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门