1.基本配置信息

from pathlib import Path# 项目路径
BASE_DIR = Path(__file__).resolve().parent.parent# 秘钥配置
"""
主要用于重要数据的加密,提高项目的安全性,避免遭到攻击者恶意破坏。秘钥主要用户密码,CSRF机制和会话Session等数据加密
用户密码:
CSRF机制:
会话Session:
"""
SECRET_KEY = 'django-insecure-%@-)^ptx*@13lh3h1#b+uty5c7enie__okn@ibn7p!1!)jhjt*'# 调试模式
DEBUG = True# 域名访问权限
"""
ALLOWED_HOSTS 为空列表时,项目只允许以localhost或127.0.0.1在浏览器上访问。
当DEBUG为False时,ALLOWED_HOSTS为必填项,允许所有域名访问、可设置ALLOWED_HOSTS = ["*"]
"""
ALLOWED_HOSTS = []# APP列表
INSTALLED_APPS = ['django.contrib.admin',  # 内置的后台管理系统'django.contrib.auth',  # 内置的用户认证系统'django.contrib.contenttypes',  # 记录项目中所有medel元数据(Django的ORM框架)'django.contrib.sessions',  # Session会话功能,用于标识当前访问网站的用户身份,记录相关用户信息'django.contrib.messages',  # 消息提示功能'django.contrib.staticfiles',  # 查找静态资源路径
]

2.资源文件配置

01.资源路由——STATIC_URL

默认情况下,Django只能识别项目应用App的static文件夹里面的静态资源

# 静态文件配置(CSS,js,img)
STATIC_URL = 'static/'# books/static/iphone.jpeg
http://127.0.0.1:8000/static/iphone14.jpeg  404# books/disposition/mystatic/nikon.jpeg
http://127.0.0.1:8000/static/nikang.jpeg 404# books/disposition/static/macpro.jpeg 必须注册子应用
http://127.0.0.1:8000/static/macpro.jpeg 200# 若 STATIC_URL = 'static/' 则浏览器访问静态资源的网站必须为static,并且 DEBUG = True(在调试模式)下只能识别app目录下的static文件(注册子应用)

02.资源集合——STATICFILES_DIRS

由于static_url的特殊性,在开发中会造成很多不便,比如将静态文件存放在项目的根目录以及定义多个静态文件。

# 解决404
"""
# books/static/iphone.jpeg
http://127.0.0.1:8000/static/iphone14.jpeg  404
# books/disposition/mystatic/nikon.jpeg
http://127.0.0.1:8000/static/nikang.jpeg 404
"""
# BASE_DIR / 'static' 设置根目录的静态资源文件
# BASE_DIR / 'disposition/mystatic' 设置子应用的静态资源文件
STATICFILES_DIRS = [BASE_DIR / 'static', BASE_DIR / 'disposition/mystatic']STATIC_URL = 'allstatic/'  # 名字可以更改
http://127.0.0.1:8000/allstatic/iphone14.jpeg
http://127.0.0.1:8000/allstatic/nikon.jpeg
http://127.0.0.1:8000/allstatic/macpro.jpeg

03.资源部署——STATIC_ROOT

static_root作用是在服务器上部署项目,实现服务器和项目之间的映射。static_root主要收集整个项目的静态资源并存放在一个新的文件夹,然后由该文件与服务器之间构建映射关系。

# 资源部署
STATIC_ROOT = BASE_DIR / 'allstatic'# python manage.py collectstatic  收集静态文件指令

开发阶段用不到,当debug = False的时候django不在提供静态文件代理服务,此时需要设置static_root

04.媒体资源——MEDIA

http://127.0.0.1:8000/media/socks.avif

static_url是设置静态文件的路由地址,如css样式文件,js文件以及常用图片等。对于一些经常变动的资源,通常将其存放在媒体资源文件,如用户头像、歌曲文件等。媒体资源和静态资源是可以同时存在的,而且俩者可以独立运行,互不影响,而媒体资源只有配置属性media_url和media_root

from django.conf.urls.static import static
from django.conf import settingsurlpatterns = [path('admin/', admin.site.urls),] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.conf import settings
from django.urls import re_path
from django.views.static import serveurlpatterns = [path('admin/', admin.site.urls),re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media'),]
from django.conf import settings
from django.urls import re_path
from django.views.static import serveif settings.DEBUG:urlpatterns += [re_path(r"^media/(?P<path>.*)$",serve,{"document_root": settings.MEDIA_ROOT,},),]

3.模板配置

TEMPLATES = [{# 要使用的模板后端。内置的模板后端有:# 'django.template.backends.django.DjangoTemplates'# 'django.template.backends.jinja2.Jinja2''BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates',BASE_DIR / 'disposition/templates'],  # 按照搜索顺序,告诉django应该查找模板源文件的目录。'APP_DIRS': True,  # 是否应该在已安装的应用程序中查找模板源文件。'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],  # 要传递给模板后台的额外参数。根据模板后端的不同,可用的参数也不同。一般不做任何修改},},
]

4.数据库配置

01.mysqlclient链接MySQL

https://pypi.org/project/mysqlclient/ ubuntu 安装报错解决方法

# 创建数据库
create database learn charset=utf8;
# 创建用户
CREATE USER 'leo'@'%' IDENTIFIED BY 'mysql';
# 授权用户权限
GRANT ALL ON learn.* TO 'leo'@'%';
# 刷新
flush privileges;
# 测试连接
mycli -uleo -pmysql
# django支持 PostgreSQL、MariaDB、MySQL、Oracle 和 SQLite。
pip install mysqlclientDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'learn','USER': 'leo','PASSWORD': 'mysql','HOST': '127.0.0.1','POST': '3306',}
}python manage.py migrate # 迁移数据库# 默认表
+----------------------------+
| Tables_in_learn            |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+

02.pymysql连接mysql

# pip install pymysql

03.多个数据库的连接方式

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'learn','USER': 'leo','PASSWORD': 'mysql','HOST': '127.0.0.1','POST': '3306',},'test': {'ENGINE': 'django.db.backends.mysql','NAME': 'test','USER': 'leo','PASSWORD': 'mysql','HOST': '127.0.0.1','POST': '3306',}
}#  指定数据库迁移
python manage.py migrate --database test

04.使用数据库文件动态连接数据库

创建一个Django项目,执行python manage.py migrate,之后随便删除一个表怎么恢复?

# BASE_DIR/mysql.cnf
[client]
database=dynamically
user=leo
password=mysql
host=127.0.0.1
port=3306
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','OPTIONS': {'read_default_file': str(BASE_DIR / 'mysql.cnf')}}
}

05.通过ssh隧道远程连接MySQL

pip install sshtunnel# 数据库服务器的ip地址或主机名
ssh_host = "192.168.23.128"
# 数据库服务器的SSH连接端口号,一般都是22,必须是数字
ssh_port = 22
# 数据库服务器的用户名
ssh_user = "zjx"
# 数据库服务器的用户密码
ssh_password = "jianxin"# 数据库服务器的mysql的主机名或ip地址
mysql_host = "localhost"
# 数据库服务器的mysql的端口,默认为3306,必须是数字
mysql_port = 3306
# 数据库服务器的mysql的用户名
mysql_user = "leo"
# 数据库服务器的mysql的密码
mysql_password = "mysql"
# 数据库服务器的mysql的数据库名
mysql_db = "secure_shell"from sshtunnel import open_tunneldef get_ssh():server = open_tunnel((ssh_host, ssh_port),ssh_username=ssh_user,ssh_password=ssh_password,# 绑定服务器的MySQL数据库remote_bind_address=(mysql_host, mysql_port))# ssh通道服务启动server.start()return str(server.local_bind_port)DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': mysql_db,'USER': mysql_user,'PASSWORD': mysql_password,'HOST': mysql_host,'PORT': get_ssh(),}
}

5.中间件

中间件(Middleware)是一个用来处理Django的请求和响应的框架级别的钩子,他是一个轻量、低级别的插件系统,用于在全范围内改变django的输入和输出

当用户在网站中进行某个操作时,这个过程是用户向网站发送HTPP请求,而网站会根据用户的操作返回相关的网页内容,这个过程称为响应处理。从请求到响应的过程中,当Django接受到用户请求时,首先经过中间件处理请求信息,执行相关的处理,然后将处理结果返回给用户。

# 中间件
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware',  # 内置的安全机制,保护用户与网站的通信安全。'django.contrib.sessions.middleware.SessionMiddleware',  # 会话Session功能# 添加'django.middleware.locale.LocaleMiddleware',  # LocaleMiddleware django内置功能支持中文显示'django.middleware.common.CommonMiddleware',  # 处理请求信息,规范化请求内容'django.middleware.csrf.CsrfViewMiddleware',  # 开启CSRF防护功能'django.contrib.auth.middleware.AuthenticationMiddleware',  # 开启内置的用户认证系统'django.contrib.messages.middleware.MessageMiddleware',  # 开启内置的信息提示功能'django.middleware.clickjacking.XFrameOptionsMiddleware',  # 防止恶意程序单击劫持
]

django配置信息相关推荐

  1. Django项目准备和配置(MVT图解、创建项目和应用、更换解释器、安装应用、本地化、模板路径、项目中匹配urls、应用中匹配urls.py、准备视图、开启服务器、修改DATABAS配置信息)

    Django模型主要包含: 模型配置 数据的增删改 增:book = BookInfo() book.save() 和BookInfo.objects.create() 删:book.delete() ...

  2. Python3.7中,Django配置MySql数据库

    上一节中讲了Python3.7搭建Django框架项目 ,并且项目能够运行起来,Django框架中默认配置的数据库是sqlite,sqlite数据库虽然小巧,但是对于大型项目时sqlite就会有瓶颈, ...

  3. 在Ubuntu 14.04 64bit上查看硬件配置信息

    陪伴我多年的老本ThinkPad T420渐渐垂垂老矣, 我想更新一下可以更新的部分, 比如将2.5寸HDD更换为SSD, 将单条4G内存再增加一根, 凡此种种想法, 可能最后归结为如何获取该笔记本的 ...

  4. python3 django配置数据库(mysql)

    python3 django配置数据库(mysql)http://www.bieryun.com/3311.html python3 下的mysql驱动 django 连接mysql默认驱动是MySQ ...

  5. springboot 加载配置信息(静态)

    springboot 加载配置信息(静态) 举例:动态设置验证码过期时间 application-uat.properties配置(文件路径:/src/main/resources/applicati ...

  6. 在.net中使用强类型来读取配置信息

    在.net应用中,配置信息以XML文档的形式来存储.依.net的惯例,web.config为Asp.net应用(包括Web Service应用)提供配置信息:而*.exe.config为可执行的应用( ...

  7. 使用Apache Commons Configuration读取配置信息

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架--Apache ...

  8. Silverlight获取WebHost配置信息--WebClient和XmlSerializer模拟

    在我们的silverlight项目中,是被打包为xap zip文件下载到客户端,所以silverlight中的app配置文件我们不能直接修改,而在其宿主web host中的web.config在服务端 ...

  9. Tomcat下conf下server.xml的文件配置信息

    Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server. ...

最新文章

  1. iis+php解析漏洞修复,IIS7.0畸形解析漏洞通杀0day
  2. 在线作图|微生物多样性分析——物种累计曲线
  3. 开源wkhtmltopdf使用心得 (一)
  4. 30 个极简Python代码,拿走即用(真干货)
  5. Graph Coloring I
  6. JSTL-EL表达式 函数fn
  7. Java 求一段代码运行所需要的时间——模板方法设计模式
  8. Filenet 周报丨2020.01.06-2020.01.19
  9. STC15单片机-低功耗设计
  10. 天津联通移动电信DNS
  11. 开发板与思岚RPLIDAR A系列雷达通过串口获取数据
  12. opencv-python学习笔记-2对比度增强——研0基础学习
  13. Web前端人员如何提升能力 提高效率有哪些方法
  14. 我就是这样学 Python 的
  15. 数字基建-高速公路智慧建造管控平台
  16. 香港大学的计算机专业,香港大学计算机专业研究方向介绍(英文)
  17. 第七章Linux 系统——存储管理高级课程
  18. 如何实现小投资大回报?
  19. 浅谈智能手机的操作系统 第一期
  20. 将solidworks中的模型导入comsol

热门文章

  1. mpls-bgp optionC RR
  2. Metis异常检测模型训练源码深入刨析
  3. 转计算机科学与技术专业要求,信息与计算机工程学院学生转入计算机科学与技术专业考核办法...
  4. IDEA全局搜索快捷设置
  5. vscode代码格式排列_vscode 一键规范代码格式的实现
  6. Day02 2.4、HTML基础之媒体标签
  7. 汉字输入计算机代码,音代码计算机汉字输入法
  8. LCD—STM32液晶显示(1.显示器简介及LCD显示原理)(6000字详细介绍)
  9. 如何让6自由度双足机器人实现翻跟头的动作?
  10. 2012联邦选举委员会数据库