django配置信息
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配置信息相关推荐
- Django项目准备和配置(MVT图解、创建项目和应用、更换解释器、安装应用、本地化、模板路径、项目中匹配urls、应用中匹配urls.py、准备视图、开启服务器、修改DATABAS配置信息)
Django模型主要包含: 模型配置 数据的增删改 增:book = BookInfo() book.save() 和BookInfo.objects.create() 删:book.delete() ...
- Python3.7中,Django配置MySql数据库
上一节中讲了Python3.7搭建Django框架项目 ,并且项目能够运行起来,Django框架中默认配置的数据库是sqlite,sqlite数据库虽然小巧,但是对于大型项目时sqlite就会有瓶颈, ...
- 在Ubuntu 14.04 64bit上查看硬件配置信息
陪伴我多年的老本ThinkPad T420渐渐垂垂老矣, 我想更新一下可以更新的部分, 比如将2.5寸HDD更换为SSD, 将单条4G内存再增加一根, 凡此种种想法, 可能最后归结为如何获取该笔记本的 ...
- python3 django配置数据库(mysql)
python3 django配置数据库(mysql)http://www.bieryun.com/3311.html python3 下的mysql驱动 django 连接mysql默认驱动是MySQ ...
- springboot 加载配置信息(静态)
springboot 加载配置信息(静态) 举例:动态设置验证码过期时间 application-uat.properties配置(文件路径:/src/main/resources/applicati ...
- 在.net中使用强类型来读取配置信息
在.net应用中,配置信息以XML文档的形式来存储.依.net的惯例,web.config为Asp.net应用(包括Web Service应用)提供配置信息:而*.exe.config为可执行的应用( ...
- 使用Apache Commons Configuration读取配置信息
2019独角兽企业重金招聘Python工程师标准>>> 在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架--Apache ...
- Silverlight获取WebHost配置信息--WebClient和XmlSerializer模拟
在我们的silverlight项目中,是被打包为xap zip文件下载到客户端,所以silverlight中的app配置文件我们不能直接修改,而在其宿主web host中的web.config在服务端 ...
- Tomcat下conf下server.xml的文件配置信息
Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server. ...
最新文章
- iis+php解析漏洞修复,IIS7.0畸形解析漏洞通杀0day
- 在线作图|微生物多样性分析——物种累计曲线
- 开源wkhtmltopdf使用心得 (一)
- 30 个极简Python代码,拿走即用(真干货)
- Graph Coloring I
- JSTL-EL表达式 函数fn
- Java 求一段代码运行所需要的时间——模板方法设计模式
- Filenet 周报丨2020.01.06-2020.01.19
- STC15单片机-低功耗设计
- 天津联通移动电信DNS
- 开发板与思岚RPLIDAR A系列雷达通过串口获取数据
- opencv-python学习笔记-2对比度增强——研0基础学习
- Web前端人员如何提升能力 提高效率有哪些方法
- 我就是这样学 Python 的
- 数字基建-高速公路智慧建造管控平台
- 香港大学的计算机专业,香港大学计算机专业研究方向介绍(英文)
- 第七章Linux 系统——存储管理高级课程
- 如何实现小投资大回报?
- 浅谈智能手机的操作系统 第一期
- 将solidworks中的模型导入comsol
热门文章
- mpls-bgp optionC RR
- Metis异常检测模型训练源码深入刨析
- 转计算机科学与技术专业要求,信息与计算机工程学院学生转入计算机科学与技术专业考核办法...
- IDEA全局搜索快捷设置
- vscode代码格式排列_vscode 一键规范代码格式的实现
- Day02 2.4、HTML基础之媒体标签
- 汉字输入计算机代码,音代码计算机汉字输入法
- LCD—STM32液晶显示(1.显示器简介及LCD显示原理)(6000字详细介绍)
- 如何让6自由度双足机器人实现翻跟头的动作?
- 2012联邦选举委员会数据库