Django之常用配置

<h1>在其它文件导入及变量命名注意事项</h1> 变量命名:必须都大写 <pre class='brush:python'> from django.conf import settings </pre> <h1>静态文件夹配置</h1> 比如需要引入jquery、bootstrap等文件,需要配置静态文件,步骤如下: 步骤一、在<项目名称>目录下新建一个statics的文件夹 步骤二、在settings.py中按下图添加 !\[\](https://img2018.cnblogs.com/blog/1503064/201912/1503064-20191228150903053-1822408085.png) 步骤三、在html中引入 !\[\](https://img2018.cnblogs.com/blog/1503064/201912/1503064-20191228151022896-380295622.png) !\[\](https://img2018.cnblogs.com/blog/1503064/201912/1503064-20191228151040389-716845653.png) <h1>禁用csrf</h1> !\[\](https://img2018.cnblogs.com/blog/1503064/201912/1503064-20191228151207621-1387734912.png)

但不建议禁用此选项,这是为了防止csrf攻击的。

<h1>使用Mysql</h1>

默认情况下,Django使用的是sqlite的数据库。而需要使用mysql,需要在替换原来DATABASES,

<pre class='brush:python'> DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', } } </pre> <h1>在Console中显示sql语句</h1> 如果我们需要在console中查看sql语句,可在settings.py中添加以下配置 <pre class='brush:python'> LOGGING = { 'version': 1, 'disable\_existing\_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': \['console'\], 'propagate': True, 'level':'DEBUG', }, } } </pre> <h1>session存储的配置</h1> (1)、数据库配置(默认) Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django\_session 表中。 <pre class='brush:python'> SESSION\_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认) SESSION\_COOKIE\_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认) SESSION\_COOKIE\_PATH = "/" # Session的cookie保存的路径(默认) SESSION\_COOKIE\_DOMAIN = None # Session的cookie保存的域名(默认) SESSION\_COOKIE\_SECURE = False # 是否Https传输cookie(默认) SESSION\_COOKIE\_HTTPONLY = True # 是否Session的cookie只支持http传输(默认) SESSION\_COOKIE\_AGE = 1209600 # Session的cookie失效日期(2周)(默认) SESSION\_EXPIRE\_AT\_BROWSER\_CLOSE = False # 是否关闭浏览器使得Session过期(默认) SESSION\_SAVE\_EVERY\_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认) </pre>

(2)、缓存配置

<pre class='brush:python'> SESSION\_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎 SESSION\_CACHE\_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置 SESSION\_COOKIE\_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串 SESSION\_COOKIE\_PATH = "/" # Session的cookie保存的路径 SESSION\_COOKIE\_DOMAIN = None # Session的cookie保存的域名 SESSION\_COOKIE\_SECURE = False # 是否Https传输cookie SESSION\_COOKIE\_HTTPONLY = True # 是否Session的cookie只支持http传输 SESSION\_COOKIE\_AGE = 1209600 # Session的cookie失效日期(2周) SESSION\_EXPIRE\_AT\_BROWSER\_CLOSE = False # 是否关闭浏览器使得Session过期 SESSION\_SAVE\_EVERY\_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存 </pre>

(3)、文件配置

<pre class='brush:python'> SESSION\_ENGINE = 'django.contrib.sessions.backends.file' # 引擎 SESSION\_FILE\_PATH = None # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir() SESSION\_COOKIE\_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串 SESSION\_COOKIE\_PATH = "/" # Session的cookie保存的路径 SESSION\_COOKIE\_DOMAIN = None # Session的cookie保存的域名 SESSION\_COOKIE\_SECURE = False # 是否Https传输cookie SESSION\_COOKIE\_HTTPONLY = True # 是否Session的cookie只支持http传输 SESSION\_COOKIE\_AGE = 1209600 # Session的cookie失效日期(2周) SESSION\_EXPIRE\_AT\_BROWSER\_CLOSE = False # 是否关闭浏览器使得Session过期 SESSION\_SAVE\_EVERY\_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存 </pre> <h1>媒体文件路径配置</h1> 一般静态文件是存放jquery、bootstrap等文件,而媒体文件是指图片、视频等文件。其配置与静态文件类似 <pre class='brush:python'> MEDIA\_ROOT = os.path.join(BASE\_DIR, 'blog', 'media') MEDIA\_URL = '/media/' </pre>

静态文件默认情况下是提供了serve,所以在浏览器里输入图片的url则会正常显示

但媒体文件则不行,因为没提供serve,就没有对应的路径,需要在urls中添加以下来配置。

<pre class='brush:python'> from django.contrib import admin from django.urls import path, re\_path from blog import views from django.views.static import serve # 用于为媒体文件 from cnblog import settings # 用到MEDIA\_ROOT urlpatterns = \[ re\_path('media/(?P<path>.\*)$', serve, {'document\_root': settings.MEDIA\_ROOT}), \] </pre> <h1>时区配置</h1> <pre class='brush:python'> TIME\_ZONE = 'Asia/Shanghai' </pre>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )