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', ], }, }, ]
静态文件
# 静态文件保存目录的别名 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的文件
数据库连接信息
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型 4 'HOST': '127.0.0.1', # 连接数据库的地址 5 'PORT': 3306, # 端口 6 'NAME': "testdb", # 数据库名称 7 'USER': 'root', # 用户 8 'PASSWORD': 'root' # 密码 9 } 10 }
控制台输出执行的sql
1 LOGGING = { 2 'version': 1, 3 'disable_existing_loggers': False, 4 'handlers': { 5 'console': { 6 'level': 'DEBUG', 7 'class': 'logging.StreamHandler', 8 }, 9 }, 10 'loggers': { 11 'django.db.backends': { 12 'handlers': ['console'], 13 'propagate': True, 14 'level': 'DEBUG', 15 }, 16 } 17 }
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,默认修改之后才保存(默认)
认证相关
登录页地址
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的操作
其它
上传文件
-
文件上传页面
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>文件上传测试</title> 6 </head> 7 <body> 8 <form action="/img_upload/" method="post" enctype="multipart/form-data"> 9 <p>title: <input type="text" name="title"></p> 10 <p>img: <input type="file" name="file" accept="image/*"></p> 11 <p><input type="submit" value="submit"></p> 12 <p><img src="{{ img_link }}"></p> 13 </form> 14 </body> 15 </html>
-
模型
1 from django.db import models 2 3 4 class Image(models.Model): 5 title = models.CharField(max_length=100, verbose_name=u'标题') 6 # upload_to参数可指定文件保存位置 (相对配置中的MEDIA_ROOT对应路径) 7 image = models.ImageField(upload_to='image/%Y/%m/%d/%H/%M/%S', max_length=400) 8 9 def __str__(self): 10 return self.title
-
路由
1 from django.conf.urls import url 2 from img_upload import views 3 from django.views.static import serve # 导入相关静态文件处理的views控制包 4 from django_test.settings import MEDIA_ROOT # 导入项目文件夹中setting中的MEDIA_ROOT绝对路径 5 6 urlpatterns = [ 7 url(r'^img_upload/', views.img_upload), 8 url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}), 9 ]
-
视图
1 from django.shortcuts import render 2 from img_upload import models 3 4 5 def img_upload(request): 6 img_link = '' 7 if request.method == 'POST': 8 title = request.POST.get('title') 9 img_file = request.FILES.get('file') 10 img_obj = models.Image.objects.create(title=title, image=img_file) 11 img_link = img_obj.image.url 12 return render(request, 'img_upload.html', locals())
-
配置
1 MEDIA_URL = '/media/' 2 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 3 4 STATIC_URL = '/static/' 5 STATICFILES_DIRS = [ 6 os.path.join(BASE_DIR, 'static'), 7 os.path.join(BASE_DIR, 'media'), 8 ]
-
效果
Java博客目录 | Python博客目录 | C#博客目录