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.cache' # 引擎
缓存+数据库
- 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
- SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
认证相关
登录页地址
- 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的操作
- INSTALLED_APPS = (
其它
上传文件
文件上传页面
- <!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
- <!DOCTYPE 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.conf.urls import url
视图
- 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
- from django.shortcuts import render
配置
- 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
- MEDIA_URL = '/media/'
效果
效果:
从效果中可以看出,图片在向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的 ...
随机推荐
- 【C语言】 重拾
[C语言] 因为以前学过C语言,只不过太长时间不用,已经忘得差不多了… 所以这篇文章的性质是把C语言中一些对于现在的我不是很符合预期的知识点记录一下. ■ HelloWorld程序 HelloWorl ...
- PCL点云分割(3)
(1)Euclidean分割 欧几里德分割法是最简单的.检查两点之间的距离.如果小于阈值,则两者被认为属于同一簇.它的工作原理就像一个洪水填充算法:在点云中的一个点被“标记”则表示为选择在一个的集群中 ...
- awk使用总结
转载自董的博客 1. 什么是awk awk是Unix/Linux提供的样式扫描与处理工具,非常擅长处理结构化数据和生成表单.与sed 和grep 很相似,但功能却超过大于两者,由于awk具备各种脚本语 ...
- win8.1系统出现C0000034正在应用更新操作怎么办
说来也奇怪,笔者Dell台式机前几天系统提示有更新,笔者对系统进行了更新,可昨天开机后,就出现了C0000034正在应用更新操作的情况,且电脑一直没反应,上网搜了一下帖子,发现复制粘贴的帖子好多,基本 ...
- 34对MyBatis的博客的整理心得
对本博客的mybatis重新读一下,做一个整理.如下: 1:为什么会有mybatis,因为原生的jdbc方式有很大问题: (1)数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭 ...
- 树莓派mariadb 设置密码
参考: sudo mysql -u root -p select Host,User,plugin from mysql.user where User='root'; plugin(加密方式)是un ...
- nginx default_server的作用
用来处理没有成功匹配server_name的请求 https://www.oschina.net/question/12_3565 https://segmentfault.com/a/1190000 ...
- 使用100%面向过程的思维方式来写java程序
1.java是强制写class关键字的语言,不能有独立的函数游离在类外出现在文件中,这和python c++ 都不同,后面的都可以单独在类外写函数,所以java被称为是纯面向对象的语言,py和c++都 ...
- wampserver2.2e-php5.3.13 版本 增加 php7 支持
公司需要升级PHP版本至PHP7,对于用惯了wamp的来说,添加一下PHP扩展应该是很容易的,看我以前的文章(WampServer自己DIY添加apache.php.mysql版本). 不过再配置的当 ...
- iOS - UITableView中有两种重用Cell的方法
UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...