请稍候,加载中....

No.5 数据库配置

WEB开发中,即使很简单的应用程序都可能需要用到数据库来存储数据,读取数据,修改数据

Django框架为我们提供了现成的数据库访问API,我们只需要简单做一些配置就可以了

APP注册

编写的app应用程序需要注册,django才能自动为app创建数据库

找到如下代码片段, 并添加自己所编写的app模块名称,比如"polls"

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls'
]

数据库配置

打开项目的settings.py文件,在本例中为myproject/settings.py

在settings.py中找到如下部分:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Django默认使用sqlite3,Python默认支持sqlite3

ENGINE - 使用的数据库引擎

NAME  - 数据库名,对sqlite3来说,数据库名就是对应的一个数据库文件路径名

使用其他数据库,比如MySQL数据库,还需要提供HOST, USER, PASSWORD, PORT连接参数

ENGINE配置

Django中,ENGINE内置支持以下数据库

  • 'django.db.backends.postgresql'
  • 'django.db.backends.mysql'
  • 'django.db.backends.sqlite3'
  • 'django.db.backends.oracle'

MYSQL配置举例

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

时区配置

时区设置是很容易被忽略的一项配置

通常需要将数据库的时区与应用程序运行环境的时区设置为一致,否则可能会有意想不到的问题

在settings.py中找到TIME_ZONE

TIME_ZONE = "Asia/Shanghai"

初始化数据库

INSTALLED_APPS中已经包含了一些内置的app,比如会员管理,接下来要给这些应用创建对应的数据库

执行下面的命令

python manage migrate

执行完毕后,即可完成数据库的初始化


Python学习手册-