初始项目的配置文件

新建项目默认settings.py的内容的

  1. """
  2. Django settings for ORM project.
  3.  
  4. Generated by 'django-admin startproject' using Django 1.10.5.
  5.  
  6. For more information on this file, see
  7. https://docs.djangoproject.com/en/1.10/topics/settings/
  8.  
  9. For the full list of settings and their values, see
  10. https://docs.djangoproject.com/en/1.10/ref/settings/
  11. """
  12.  
  13. import os
  14.  
  15. # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
  16. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  17.  
  18. # Quick-start development settings - unsuitable for production
  19. # See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
  20.  
  21. # SECURITY WARNING: keep the secret key used in production secret!
  22. SECRET_KEY = '-pasr(osd7j9maaiqp0eibz1_v01&0b5hco+1sr*s1yy#ip)1!'
  23.  
  24. # SECURITY WARNING: don't run with debug turned on in production!
  25. DEBUG = True
  26.  
  27. ALLOWED_HOSTS = []
  28.  
  29. # Application definition
  30.  
  31. INSTALLED_APPS = [
  32. 'django.contrib.admin',
  33. 'django.contrib.auth',
  34. 'django.contrib.contenttypes',
  35. 'django.contrib.sessions',
  36. 'django.contrib.messages',
  37. 'django.contrib.staticfiles',
  38. 'app01',
  39. ]
  40.  
  41. MIDDLEWARE = [
  42. 'django.middleware.security.SecurityMiddleware',
  43. 'django.contrib.sessions.middleware.SessionMiddleware',
  44. 'django.middleware.common.CommonMiddleware',
  45. 'django.middleware.csrf.CsrfViewMiddleware',
  46. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  47. 'django.contrib.messages.middleware.MessageMiddleware',
  48. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
  49. ]
  50.  
  51. ROOT_URLCONF = 'ORM.urls'
  52.  
  53. TEMPLATES = [
  54. {
  55. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  56. 'DIRS': [os.path.join(BASE_DIR, 'templates')]
  57. ,
  58. 'APP_DIRS': True,
  59. 'OPTIONS': {
  60. 'context_processors': [
  61. 'django.template.context_processors.debug',
  62. 'django.template.context_processors.request',
  63. 'django.contrib.auth.context_processors.auth',
  64. 'django.contrib.messages.context_processors.messages',
  65. ],
  66. },
  67. },
  68. ]
  69.  
  70. WSGI_APPLICATION = 'ORM.wsgi.application'
  71.  
  72. # Database
  73. # https://docs.djangoproject.com/en/1.10/ref/settings/#databases
  74.  
  75. DATABASES = {
  76. 'default': {
  77. 'ENGINE': 'django.db.backends.sqlite3',
  78. 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  79. }
  80. }
  81.  
  82. # Password validation
  83. # https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators
  84.  
  85. AUTH_PASSWORD_VALIDATORS = [
  86. {
  87. 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
  88. },
  89. {
  90. 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
  91. },
  92. {
  93. 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
  94. },
  95. {
  96. 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
  97. },
  98. ]
  99.  
  100. # Internationalization
  101. # https://docs.djangoproject.com/en/1.10/topics/i18n/
  102.  
  103. LANGUAGE_CODE = 'en-us'
  104.  
  105. TIME_ZONE = 'UTC'
  106.  
  107. USE_I18N = True
  108.  
  109. USE_L10N = True
  110.  
  111. USE_TZ = True
  112.  
  113. # Static files (CSS, JavaScript, Images)
  114. # https://docs.djangoproject.com/en/1.10/howto/static-files/
  115.  
  116. STATIC_URL = '/static/'

  

注释信息都不解释了

介绍一些默认常用的配置文件信息

ALLOWED_HOSTS

  1. DEBUG = True
  2.  
  3. ALLOWED_HOSTS = []

  

默认为一个空列表,代表此Django网站可以可以提供的主机/域名的字符串列表。

  1. DEUG = True ALLOWED_HOSTS 是空的时候,默认将对本机('localhost')进行验证

  

INSTALLED_APPS

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'app01',
  9. ]

  

django.contrib.admin —— 管理站点。

django.contrib.auth —— 认证系统。

django.contrib.contenttypes —— 用于内容类型的框架。

django.contrib.sessions —— 会话框架。

django.contrib.messages —— 消息框架。

django.contrib.staticfiles —— 管理静态文件的框架。

app01  是创建应用app的名字,如果项目创建了app则必须要添加app的名字

后期详细介绍,现在有些不清楚。。。。。

静态文件设置

1.概述:

静态文件交由Web服务器处理,Django本身不处理静态文件。简单的处理逻辑如下(以nginx为例):URI请求-----> 按照Web服务器里面的配置规则先处理,以nginx为例,主要求配置在nginx.conf里的location

如果是静态文件,则由nginx直接处理

如果不是则交由Django处理,Django根据urls.py里面的规则进行匹配

以上是部署到Web服务器后的处理方式,为了便于开发,Django提供了在开发环境的对静态文件的处理机制,方法是这样:

  1. 1、在INSTALLED_APPS里面加入'django.contrib.staticfiles',
  2.  
  3. 2、在urls.py里面加入
  4. if settings.DEBUG:
  5. urlpatterns += patterns('', url(r'^media/(?P<path>.*)$',
  6. 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }),
  7. url(r'^static/(?P<path>.*)$',
  8. 'django.views.static.serve',{'document_root':settings.STATIC_ROOT}), )
  9.  
  10. 这样就可以在开发阶段直接使用静态文件了。

  

2.MEDIA_ROOT和MEDIA_URL

静态文件的处理又包括STATIC和MEDIA两类,这往往容易混淆,在Django里面是这样定义的:

MEDIA:指用户上传的文件,比如在Model里面的FileFIeld,ImageField上传的文件。如果你定义

MEDIA_ROOT=c:\temp\media,那么File=models.FileField(upload_to="abc/")#,上传的文件就会被保存到c:\temp\media\abc

例如:

  1. class blog(models.Model):
  2. Title=models.charField(max_length=64)
  3. Photo=models.ImageField(upload_to="photo")
  4.  
  5. 上传的图片就上传到c:\temp\media\photo,而在模板中要显示该文件,则在这样写
  6. settings里面设置的MEDIA_ROOT必须是本地路径的绝对路径,一般是这样写:
  7. BASE_DIR= os.path.abspath(os.path.dirname(__file__))
  8. MEDIA_ROOT=os.path.join(BASE_DIR,'media/').replace('\\','/')

  

MEDIA_URL是指从浏览器访问时的地址前缀,举个例子:

  1. MEDIA_ROOT=c:\temp\media\photo
  2. MEDIA_URL="/data/"
  3.  
  4. 在开发阶段,media的处理由django处理:
  5. 访问http://localhost/data/abc/a.png就是访问c:\temp\media\photo\abc\a.png
  6.  
  7. 在部署阶段最大的不同在于你必须让web服务器来处理media文件,因此你必须在web服务器中配置,
  8. 以便能让web服务器能访问media文件
  9.  
  10. nginx为例,可以在nginx.conf里面这样:
  11. location ~/media/{
  12. root/temp/
  13. break;
  14. }
  15.  
  16. 具体可以参考如何在nginx部署django的资料。

  

3.STATIC_ROOT和STATIC_URL

STATIC主要指的是如css,js,images这样文件,在settings里面可以配置STATIC_ROOT和STATIC_URL,

配置方式与MEDIA_ROOT是一样的,但是要注意

STATIC文件一般保存在以下位置:

  1. 1STATIC_ROOT:在settings里面设置,一般用来放一些公共的js,css,images等。
  2. 2appstatic文件夹,在每个app所在文夹均可以建立一个static文件夹,然后当运行collectstatic时,
  3. python manage.py collectstatic
  4. Django会遍历INSTALL_APPS里面所有appstatic文件夹,将里面所有的文件复制到STATIC_ROOT。因此,如果你要建立可复用的app,那么你要将该app所需要的静态文件放在static文件夹中。
  5. 也就是说一个项目引用了很多app,那么这个项目所需要的css,images等静态文件是分散在各个appstatic文件
  6. 比较典型的是admin应用。当你要发布时,需要将这些分散的static文件收集到一个地方就是STATIC_ROOT
  7.  
  8. 3STATIC文件还可以配置STATICFILES_DIRS,指定额外的静态文件存储位置。
  9. STATIC_URL的含义与MEDIA_URL类似。

  

引入静态文件的两种方式

第一种方式:

在app下面建立一个静态文件夹的目录static,存放静态文件(css,js,image)

  1. STATIC_URL = '/static/' #引用名
  2.  
  3. STATICFILES_DIRS = (
  4. (os.path.join(BASE_DIR,"app01","static")), #实际名,实际存放静态目录的文件目录的路径
  5. )
  6.  
  7. 在模板文件中引入
  8.  
  9. <link rel="stylesheet" type="text/css"
  10. href="/static/test.css">
  11.  
  12. <link rel="stylesheet" type="text/css"
  13. href="/引用名/要引入的css文件">

  

引用名的作用:

为了后端的更改不会影响前端的引入,避免造成前端大量修改

第二种方式:

  1. STATIC_URL = '/static/' #引用名
  2.  
  3. STATICFILES_DIRS=(
  4. ('hello',os.path.join(BASE_DIR,"app01","static")) , #拼接实际静态存发静态文件的目录
  5. )
  6.  
  7. 在模板文件的内容顶行写
  8. {% load staticfiles %}
  9.  
  10. 在相应的文件位置引入静态文件
  11.  
  12. <link rel="stylesheet" type="text/css" href="{% static "test.css" %}">
  13.  
  14. href的链接路径都是 {% static "要引用的静态文件" %}

  

  

Django的配置文件(settings.py)的更多相关文章

  1. django项目的配置文件settings.py详解

    我们创建好了一个Python项目(mysite/)之后,需要在项目中添加模块应用(polls/),在模块应用中添加处理功能逻辑,如添加模块中的视图处理函数(polls.views.index()),这 ...

  2. 【5】Django项目配置settings.py详解

    夫唯不争,故天下莫能与之争 --老子<道德经> 本节内容 1.项目配置文件settings.py介绍 2.数据库配置[MySQL] 3.创建模型对象并和数据库同步 4.python官方提供 ...

  3. Django 项目拆分配置文件settings.py

    使用Django命令生成一个项目的基本结构时, 配置信息默认保存在和项目目录同名的目录下的settings.py文件里, 对于一个项目而言, 这样往往是不合适的, 在实际的开发中,需要将配置文件拆分为 ...

  4. django之配置文件setting.py

    一:配置文件setting.py中的简单配置更改 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 简单解释 ...

  5. Django框架中settings.py注释

    1 # coding:utf8 2 """ 3 Django settings for DjangoTest project. 4 5 Generated by 'dja ...

  6. django 配置文件settings.py 设置模板

    INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'dj ...

  7. Django 配置文件 settings.py

    1. dubug配置 DEBUG=False 2. 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', &qu ...

  8. Django的配置文件(settings)

    静态文件设置: 一.概述: #静态文件交由Web服务器处理,Django本身不处理静态文件.简单的处理逻辑如下(以nginx为例): # URI请求-----> 按照Web服务器里面的配置规则先 ...

  9. Django安全配置(settings.py)详解

    必须配置项 PASSWORD_HASHER 这个配置是在使用Django自带的密码加密函数的时候会使用的加密算法的列表.默认如下: PASSWORD_HASHERS = ( 'django.contr ...

随机推荐

  1. STL中的Vector相关用法

    STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...

  2. hdu 1058

    这道题有很多种做法,但是思路大都是一样的,代码有点类似于poj2591这道题. 题意:问因子只含有2,3,5,7的第k个数是什么? #include<stdio.h> int f[5843 ...

  3. 自适应XAML布局经验总结 (一)原则和页面结构设计

    XAML布局回顾 Grid和StackPanel是核心布局,尤其以Grid最为重要. Grid是网格布局,XAML的设计者有可能参考了Html里的Table设计了Grid布局,但进行了改进.Html中 ...

  4. Send or receive files via Xshell

    1. install lrzsz $ sudo apt-get install lrzsz 2. If you want to send file from your pc to pi, just d ...

  5. python——回文函数(reversed)

    回文数:正向排列与反向排列所得结果是相等的(即从左到右和从右到左的结果是相等的),例如:“123321”,“0000”等. reversed函数:反转一个序列对象,将其元素从后向前颠倒构建成一个新的迭 ...

  6. ubuntu Mono+Jexus 部署到 ASP.NET MVC 5

    之前搞了很多次都是卡在了razor那个异常哪里,今天心血来潮就在试一试,一试竟然成功了,激动的我赶紧记录下历程.废话不说,走起... ubuntu 16.04 安装mono(最新版 5.14.0) 官 ...

  7. vs2017使用rdlc

    写在前面:因为公司要求做个批量打印工具,以前用Delphi+FastReport开发的,现在因为公司就剩下一个Delphi开发工程师了,还外出,所以这是就落在我身上.因为这个打印工具不需要使用人员设计 ...

  8. Sql语句在SqlServer中创建数据库、表格并添加约束

    通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...

  9. PHP/ThinkPHP5 框架集成微博登录入库流程示意

    PHP/ThinkPHP5 框架集成微博登录入库流程示意 第三方登陆这个东东,目前主要是 微信.微博.qq.淘宝.支付宝 等几个.他们都是基于oath2协议的.原理差不多.这里记录的是我测试的新郎微博 ...

  10. Nigix配置