Django配置相关及其它
配置
模板
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates1'), # 根目录->templates1
os.path.join(BASE_DIR, 'templates2'), # 根目录->templates2
], # 配置render()函数在上述路径下寻找模板
'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',
],
},
},
]
Code
静态文件
# 静态文件保存目录的别名
STATIC_URL = '/static/' # 静态文件存放文件夹
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static1"),
os.path.join(BASE_DIR, "static2"),
]
# 上述配置的效果就是 请求指定别名会在指定目录下寻找指定文件
# 例:127.0.0.1:8000/static/test.css 会在STATICFILES_DIRS节中配置的每个目录寻找名为test.css的文件
Code
数据库连接信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
'HOST': '127.0.0.1', # 连接数据库的地址
'PORT': 3306, # 端口
'NAME': "testdb", # 数据库名称
'USER': 'root', # 用户
'PASSWORD': 'root' # 密码
}
}
Code
控制台输出执行的sql
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
}
}
Code
Session相关
引擎
数据库(默认)
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
缓存
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置缓存+数据库
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
加密
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
其它公用设置项
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,默认修改之后才保存(默认)View
认证相关
登录页地址
LOGIN_URL = '/login/' # 这里配置成你项目登录页面的路由
替换默认auth_user表
AUTH_USER_MODEL = "app名.User表名"
跨域配置
安装
pip install django-cors-headers
settings配置
INSTALLED_APPS = (
'corsheaders',
)
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
]
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:8080',
'localhost:8080', #凡是出现在白名单中的域名,都可以访问后端接口
)
CORS_ALLOW_CREDENTIALS = True # 指明在跨域访问中,后端是否支持对cookie的操作
其它
上传文件
文件上传页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传测试</title>
</head>
<body>
<form action="/img_upload/" method="post" enctype="multipart/form-data">
<p>title: <input type="text" name="title"></p>
<p>img: <input type="file" name="file" accept="image/*"></p>
<p><input type="submit" value="submit"></p>
<p><img src="{{ img_link }}"></p>
</form>
</body>
</html>/templates/img_upload.html
模型
from django.db import models class Image(models.Model):
title = models.CharField(max_length=100, verbose_name=u'标题')
# upload_to参数可指定文件保存位置 (相对配置中的MEDIA_ROOT对应路径)
image = models.ImageField(upload_to='image/%Y/%m/%d/%H/%M/%S', max_length=400) def __str__(self):
return self.title/[app name]/models.py
路由
from django.conf.urls import url
from img_upload import views
from django.views.static import serve # 导入相关静态文件处理的views控制包
from django_test.settings import MEDIA_ROOT # 导入项目文件夹中setting中的MEDIA_ROOT绝对路径 urlpatterns = [
url(r'^img_upload/', views.img_upload),
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
]/[project name]/urls.py
视图
from django.shortcuts import render
from img_upload import models def img_upload(request):
img_link = ''
if request.method == 'POST':
title = request.POST.get('title')
img_file = request.FILES.get('file')
img_obj = models.Image.objects.create(title=title, image=img_file)
img_link = img_obj.image.url
return render(request, 'img_upload.html', locals())/[app name]/views.py
配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'media'),
]/[project name]/settings.py
效果
效果:
从效果中可以看出,图片在向db保存数据的过程中存储到了模型中指定的位置,而db中保存的只是图片的路径。
Django配置相关及其它的更多相关文章
- django配置-mysql数据库相关配置
Django3版本之前的配置 1. Django默认配置的数据库是sqlite 2. 使用mysql数据库需要下载的包 pip3 install PyMySQL 3. Django配置PyMySQL ...
- 《玩转Django2.0》读书笔记-Django配置信息
<玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...
- Django配置后台xadmin管理界面
Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...
- Django 模板相关
Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最 ...
- DJango配置mysql数据库以及数据库迁移
DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...
- Django 配置MySQL数据库 mysql
Django 配置MySQL数据库 在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # ...
- Hibernate 系列 04 - Hibernate 配置相关的类
引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...
- linux网络配置相关命令、虚拟网络接口eth0:0
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...
- Windows下Apache+mod_python+Django配置
Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...
随机推荐
- centos查看端口被哪个应用端口占用命令
在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的 net ...
- [Git] 将本地分支与远程分支关联
. . . . . 在本地工程中添加Git,并将其与远程的空库关联起来,只需如下几步. 1. 创建空库 $ git init Initialized empty Git repository in D ...
- 【iCore4 双核心板_ARM】例程二十六:LWIP_MODBUS_TCP实验——电源监控
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...
- mysqldump定时备份数据库
mysql服务器ip:192.168.0.10 备份服务器ip:192.168.0.11 数据库名称:db_product 思路:在mysql服务器A上创建一个用户分配权限专门用于数据库备份,A服务器 ...
- Direct3D 11 Tutorial 6:Lighting_Direct3D 11 教程6:灯光
概述 在之前的教程中,世界看起来很无聊,因为所有对象都以相同的方式点亮. 本教程将介绍简单照明的概念及其应用方法. 使用的技术将是朗伯照明. 本教程的结果将修改前面的示例以包含光源. 该光源将附在轨道 ...
- Java开发面试题汇总整理
又是金三银四的时候,我希望这份面试题能够祝你一臂之力! 自我和项目相关 1.自我介绍 2.你觉得自己的优点是?你觉得自己有啥缺点? 3.你有哪些 offer? 4.你为什么要离开上家公司?你上家公司在 ...
- java的同步方法和同步代码块,对象锁,类锁区别
/** * @author admin * @date 2018/1/12 9:48 * 作用在同一个实例对象上讨论 * synchronized同步方法的测试 * 两个线程,一个线程调用synchr ...
- Centos7 启动脚本
Centos7 启动脚本 启动脚本.如果进程已存在,输出错误信息后退出: #! /bin/bash PIDS=`ps -ef | grep '/usr/bin/node ./index.js' | g ...
- Dynamic seq2seq in tensorflow
v1.0中 tensorflow渐渐废弃了老的非dynamic的seq2seq接口,已经放到 tf.contrib.legacy_seq2seq目录下面. tf.contrib.seq2seq下面的实 ...
- mysql按位的索引判断值是否为1
DELIMITER $$ DROP FUNCTION IF EXISTS `value_of_bit_index_is_true`$$/*计算某个数字的某些索引的位的值是否都为1,索引类似1,2,3, ...