配置
模板


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
数据库连接信息


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 }
Code
控制台输出执行的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 }
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的操作
其它
上传文件
-
文件上传页面


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>
/templates/img_upload.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
/[app name]/models.py
-
路由


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 ]
/[project name]/urls.py
-
视图


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())
/[app name]/views.py
-
配置


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 ]
/[project name]/settings.py
-
效果

效果:
从效果中可以看出,图片在向db保存数据的过程中存储到了模型中指定的位置,而db中保存的只是图片的路径。