前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 系列篇(三):配置篇(下)

Django 系列篇(三):配置篇(下)

作者头像
AirPython
发布2020-04-15 17:26:32
6860
发布2020-04-15 17:26:32
举报
文章被收录于专栏:Python 自动化Python 自动化

1. 模板

Django 中的模板引擎在创建项目的时候可以选择,包含:Django Templats 和 Jinja2

模板是一种特殊的 HTML,里面会包含一些变量和指令,配置模板引擎解析,生成一个完整的 HTML 页面,返回给浏览器展示出来。

创建一个新项目时,在 settings.py 文件中,Django 初始化的模板配置信息如下:

需要注意的是,实际项目开发中,只需要配置 DIRS 路径即可,根目录下的 templates 文件夹用于存放通用的模板文件。

代码语言:javascript
复制
# settings.py
# 配置模板的路径
# 包含:根目录的 templates 目录和 App 下的 templates 目录
# 注意:每一个 App 下都可以新建一个 templates 目录,然后配置进去
'DIRS': [os.path.join(BASE_DIR, 'templates'),
                 os.path.join(BASE_DIR, 'secondapp/templates')
                 ]

另外,每一个 App 下也可以新建一个 templates 目录,用于保存当前 App 所需要模板文件。

2. 数据库

数据库配置是用于实现项目和数据库的连接,实现数据的增删查改。

Django 提供了 4 种数据库引擎,分别是:

代码语言:javascript
复制
# settings.py
# 4 种数据库引擎
# 数据库postgresql
'django.db.backends.postgresql'

# mysql数据库
'django.db.backends.mysql'

# sqlite数据库
'django.db.backends.sqlite3'

# oracle数据库
'django.db.backends.oracle'

Django 新建一个项目的时候,默认使用 Sqlite3 数据库,常用于移动端,配置信息如下:

代码语言:javascript
复制
# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

以连接 Mysql 为例

要实现项目和数据库的连接,首先需要安装 mysqlclient 依赖库

代码语言:javascript
复制
# 安装依赖库:mysqlclient
pip3 install mysqlclient

接着,在配置文件 setttings.py 中配置 Mysql 的数据库基本信息,包含:用户名、密码、数据库名、HOST 及端口号

代码语言:javascript
复制
DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # },

    'default': {
        'ENGINE': 'django.db.backends.mysql',   
        'NAME': 'django',    # 数据库名
        'USER': 'root',      # 登录用户名
        'PASSWORD': '123456',    # 登录密码
        'HOST': '139.199.**.**',  # 服务器地址
        'PORT': '3306',   # 数据库端口号,一般为:3306
    },
}

最后,使用 python3 manage.py migrate 命令将内置的迁移文件在 Mysql 数据库中生成对应的数据表

如果执行上面的命令没法连接 Mysql Server,可以通过修改 user 表的 host 项来解决这个问题。

代码语言:javascript
复制
# 登录数据库,修改mysql数据库内,user表的host字段
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;

使用 Navicat 客户端可以查看到默认生成的数据表。

对于一些数据量很大的系统,单个数据库存储可能没法满足服务器负载要求,需要将数据存储到多数据库服务器

在配置文件 settings.py 中,Django 可以配置多个数据库,使用 default 关键字指定一个默认的数据库

3. 中间件

中间件在 Django 中,是一个轻量级别的插件系统,用来处理 Django 中的请求和响应的框架级别的钩子

中间件的作用是处理用户 Request 请求和 Response 响应内容,对 Django 的输入、输出做整体的修改。

可以在中间件列表下添加 LocaleMiddleware 中间件,可以让内置的功能支持中文显示。

代码语言:javascript
复制
# 中间件列表
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',  # 新增中间件,支持中文显示
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

一些复杂的功能可以通过自定义中间件类,然后在 settings.py 进行配置,激活中间件即可。

需要注意的是,中间件的加入顺序是固定的,不能随意更改顺序,否则会导致程序异常。

Django 项目默认的中间件配置可以满足大部分开发需求,一般不需要进行更改。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AirPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 模板
  • 2. 数据库
  • 3. 中间件
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档