配置

模板

  1. TEMPLATES = [
  2. {
  3. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  4. 'DIRS': [
  5. os.path.join(BASE_DIR, 'templates1'), # 根目录->templates1
  6. os.path.join(BASE_DIR, 'templates2'), # 根目录->templates2
  7. ], # 配置render()函数在上述路径下寻找模板
  8. 'APP_DIRS': True,
  9. 'OPTIONS': {
  10. 'context_processors': [
  11. 'django.template.context_processors.debug',
  12. 'django.template.context_processors.request',
  13. 'django.contrib.auth.context_processors.auth',
  14. 'django.contrib.messages.context_processors.messages',
  15. ],
  16. },
  17. },
  18. ]

Code

静态文件

  1. # 静态文件保存目录的别名
  2. STATIC_URL = '/static/'
  3.  
  4. # 静态文件存放文件夹
  5. STATICFILES_DIRS = [
  6. os.path.join(BASE_DIR, "static1"),
  7. os.path.join(BASE_DIR, "static2"),
  8. ]
  9. # 上述配置的效果就是 请求指定别名会在指定目录下寻找指定文件
  10. # 例: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相关

  • 引擎

    • 数据库(默认)
      1. SESSION_ENGINE = 'django.contrib.sessions.backends.db'
    • 缓存
      1. SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
      2. SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
    • 缓存+数据库
      1. SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
    • 加密
      1. SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
  • 其它公用设置项

    1. SESSION_COOKIE_NAME "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
    2. SESSION_COOKIE_PATH "/" # Session的cookie保存的路径(默认)
    3. SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
    4. SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)
    5. SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)
    6. SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认)
    7. SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认)
    8. SESSION_SAVE_EVERY_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认)

    View

认证相关

登录页地址

  1. LOGIN_URL = '/login/' # 这里配置成你项目登录页面的路由

替换默认auth_user表

  1. AUTH_USER_MODEL = "app名.User表名"

跨域配置

  • 安装

    1. pip install django-cors-headers
  • settings配置

    1. INSTALLED_APPS = (
    2. 'corsheaders',
    3. )
    4. MIDDLEWARE = [
    5. 'corsheaders.middleware.CorsMiddleware',
    6. ]
    7. CORS_ORIGIN_WHITELIST = (
    8. '127.0.0.1:8080',
    9. 'localhost:8080', #凡是出现在白名单中的域名,都可以访问后端接口
    10. )
    11. 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. class Image(models.Model):
    4. title = models.CharField(max_length=100, verbose_name=u'标题')
    5. # upload_to参数可指定文件保存位置 (相对配置中的MEDIA_ROOT对应路径)
    6. image = models.ImageField(upload_to='image/%Y/%m/%d/%H/%M/%S', max_length=400)
    7.  
    8. def __str__(self):
    9. 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. def img_upload(request):
    5. img_link = ''
    6. if request.method == 'POST':
    7. title = request.POST.get('title')
    8. img_file = request.FILES.get('file')
    9. img_obj = models.Image.objects.create(title=title, image=img_file)
    10. img_link = img_obj.image.url
    11. 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中保存的只是图片的路径。

Django配置相关及其它的更多相关文章

  1. django配置-mysql数据库相关配置

    Django3版本之前的配置 1. Django默认配置的数据库是sqlite 2. 使用mysql数据库需要下载的包 pip3 install PyMySQL 3. Django配置PyMySQL ...

  2. 《玩转Django2.0》读书笔记-Django配置信息

    <玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...

  3. Django配置后台xadmin管理界面

    Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...

  4. Django 模板相关

    Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最 ...

  5. DJango配置mysql数据库以及数据库迁移

    DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...

  6. Django 配置MySQL数据库 mysql

    Django 配置MySQL数据库 在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # ...

  7. Hibernate 系列 04 - Hibernate 配置相关的类

    引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...

  8. linux网络配置相关命令、虚拟网络接口eth0:0

    网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...

  9. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

随机推荐

  1. 【C语言】 重拾

    [C语言] 因为以前学过C语言,只不过太长时间不用,已经忘得差不多了… 所以这篇文章的性质是把C语言中一些对于现在的我不是很符合预期的知识点记录一下. ■ HelloWorld程序 HelloWorl ...

  2. PCL点云分割(3)

    (1)Euclidean分割 欧几里德分割法是最简单的.检查两点之间的距离.如果小于阈值,则两者被认为属于同一簇.它的工作原理就像一个洪水填充算法:在点云中的一个点被“标记”则表示为选择在一个的集群中 ...

  3. awk使用总结

    转载自董的博客 1. 什么是awk awk是Unix/Linux提供的样式扫描与处理工具,非常擅长处理结构化数据和生成表单.与sed 和grep 很相似,但功能却超过大于两者,由于awk具备各种脚本语 ...

  4. win8.1系统出现C0000034正在应用更新操作怎么办

    说来也奇怪,笔者Dell台式机前几天系统提示有更新,笔者对系统进行了更新,可昨天开机后,就出现了C0000034正在应用更新操作的情况,且电脑一直没反应,上网搜了一下帖子,发现复制粘贴的帖子好多,基本 ...

  5. 34对MyBatis的博客的整理心得

    对本博客的mybatis重新读一下,做一个整理.如下: 1:为什么会有mybatis,因为原生的jdbc方式有很大问题: (1)数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭 ...

  6. 树莓派mariadb 设置密码

    参考: sudo mysql -u root -p select Host,User,plugin from mysql.user where User='root'; plugin(加密方式)是un ...

  7. nginx default_server的作用

    用来处理没有成功匹配server_name的请求 https://www.oschina.net/question/12_3565 https://segmentfault.com/a/1190000 ...

  8. 使用100%面向过程的思维方式来写java程序

    1.java是强制写class关键字的语言,不能有独立的函数游离在类外出现在文件中,这和python c++ 都不同,后面的都可以单独在类外写函数,所以java被称为是纯面向对象的语言,py和c++都 ...

  9. wampserver2.2e-php5.3.13 版本 增加 php7 支持

    公司需要升级PHP版本至PHP7,对于用惯了wamp的来说,添加一下PHP扩展应该是很容易的,看我以前的文章(WampServer自己DIY添加apache.php.mysql版本). 不过再配置的当 ...

  10. iOS - UITableView中有两种重用Cell的方法

    UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...