夫唯不争,故天下莫能与之争
——老子《道德经》

本节内容

  • 1.项目配置文件settings.py介绍
  • 2.数据库配置【MySQL】
  • 3.创建模型对象并和数据库同步
  • 4.python官方提供的项目后台管理平台的使用
    注意:本节内容我们会按照三部分进行分步讲解

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

但是上面的项目应用,这是在一个项目中包含了一个模块应用,如果让项目对模块应用的数据进行管理;同时按照常规项目处理要求,项目中的数据要保存到指定的数据库中;同时我们得有一个对项目信息进行管理的系统平台;本节内容中就要对于这些亟待解决的问题进行解决(大家同样可以参考官方文档的操作方式)

1. 项目配置文件settings.py

创建的Django项目中,会在根模块中包含一个settings.py配置文件,这个配置文件中用于配置和管理Django项目的管理运维信息

1.1. 配置文件的特性
  • 配置项
    settings.py配置文件中的所有配置项都是大写的
  • 默认值
    settings.py在项目创建时,就初始化了一些默认配置,这些默认配置承载着最基础的项目信息
  • 配置规则
    可以从global_settings.py中导入全局配置,常规情况下,这是不必要的
    在配置过程中,我们可以随时通过python manage.py diffsettings来查看当前settings文件和默认设置的不同之处
    可以通过django.conf.settings模块中导入变量,在代码中访问配置信息,这样的话,就可以在程序运行过程中进行动态的settings配置修改
  • 安全性
    对于settings文件包含的信息,涉密的情况很多,需要严格控制settings.py文件的访问权限,在共享主机的情况下,这一点格外重要。
1.2. 常规配置

前一段时间江湖流行武术打假,接下来,就是一堆的硬功夫了~~非常之枯燥,看看就行,我们只需要知道别人的招数是做什么用的就好!,当然,绝招还是会提示的
友情提示:千万别修炼下面这些玩意儿!如果兴趣不大可以直接翻页到下一节内容

  • 1.2.1 ABSOLUTE_URL_OVERRIDES:默认值:{}
    一个字典映射“app_label_module_name”字符串到一个函数,该函数接收一个Model对象作为参数并返回它的url,这是一个安装上覆盖get_absolute_url()方法的方式
  • 1.2.2 ADMIN_FOR:默认值:()
    用于admin-site settings模块,如果当前站点是admin,它是一个由settings模块组成的tuple字典
  • 1.2.3 ADMIN_MEDIA_PREFIX:默认值:"/media/"
    用于给admin模块设置媒体、CSS、JS和图片的前缀,请确保正确的使用它
  • 1.2.4 ADMINS:默认值:()
    一个包含2个元素的字典,列出了有权接收代码错误提示的邮件列表,当DEBUG=False时,如果一个view引发了异常,Django会将详细信息用电子邮件的方式发送给这些邮件地址,内容格式一般是(名称,邮箱),如:(("管理员A",admin@damu.com),("管理员B",manager@damu.com))
  • 1.2.5 ALLOWED_INCLUDE_ROOTS:默认值:()
    一个字符擦混字典,列表中的元素为前缀的模板Django才可以以{%ssi%}形式方法,处于安全考虑,在不应该访问时即使是模板的坐着也不能访问这些文件
  • 1.2.6 APPEND_SLASH:默认值:True
    是否给URL添加一个结尾的斜线,只有安装了CommonMiddleware之后,该选项才起作用
  • 1.2.7 CACHE_BACKEND:默认值:'simple://'
    后盾使用的cache缓存
  • 1.2.8 CACHE_MIDDLEWARE_KEY_PREFIX:默认值:""
    cache中间件使用的cache key前缀
  • 1.2.9 DATABASE_ENGINE:默认值:"postgresql"
    后端使用的数据库引擎:“posgresql”、"mysql"、"sqlite3"或者"ado_mssql"中的任意一个
  • 1.2.10 DATABASE_HOST:默认值:""
    数据库所在主机,空字符串意味着使用localhost SQLite.如果你使用MYSQL并且该选项以一个斜线"/"开始,MySQL会通过一个Unix socket连接到指定更多socket
  • 1.2.11 DATABASE_NAME:默认值:""
    要使用的数据库名称,默认的SQLite数据库不需要该项
  • 1.2.12 DATABASE_PASSWORD:默认值:""
    连接数据库时的登录密码,默认的SQLite数据库不需要该项
  • 1.2.13 DATABASE_PORT:默认值:""
    连接数据库时使用的端口,默认的SQLite不需要该项
  • 1.2.14 DATABASE_USER:默认值:""
    连接数据库时使用的用户名,SQLite不需要该项
  • 1.2.15 DATE_FORMAT:默认值:"N j, Y"
    对日期字段使用的默认日期格式
  • 1.2.16 DEBUG:默认值:False
    一个开关,用于是否打开调试模式
  • 1.2.17 DEFAULT_CHARSET:默认值:"utf-8"
    设置所有HttpResponse对象的默认字符集,构建Content-Type头数据
  • 1.2.18 DEFAULT_CONTENT_TYPE:默认值:"text/html"
    设置所有HttpResponse对对象的默认数据格式,构建Content-type头数据
  • 1.2.19 EMAIL_HOST:默认值:“localhost”
    用来发送e-mail电子邮件的主机
    1.2.20 EMAIL_HOST_PASSWORD:默认值:""
    EMAIL_HOST选项中定义的SMPT邮箱服务器登录密码,如果为空~Django就不会尝试进行认证
  • 1.2.21 EMAIL_HOST_USER:默认值:""
    EMAIL_HOST选项中定义的SMTP服务器使用的用户名,如果为空~Django将不会尝试进行认证
  • 1.2.22 EMAIL_PORT:默认值:25
    EMAIL_HOST选项指定的SMTP服务器使用的端口号
  • 1.2.23 ENABLE_PSYCO:默认值False
    确定是否使用pscyo优化python代码,需要依赖psyco模块
    1.2.24 IGNORABLE_404_STARTS:默认值: ('/cgi-bin/', '/vti_bin', '/vti_inf')
    一个字符串 tuple . 以该tuple中元素为开头的 URL 应该被 404 e-mailer 忽略
    1.2.25 INSTALLED_APPS:默认值: () (空的 tuple)
    一个字符串tuple ,内容是本 Django 安装中的所有应用. 每个字符串应该是一个包含Django应用程序的Python包的路径全称, django-admin.py startapp 会自动往其中添加内容.
    1.2.26 INTERNAL_IPS:默认值: () (空的 tuple)
    一个 ip 地址的 tuple(字符串形式), 它:
    当 DEBUG 为 True 时,参阅调试务注解
    接收 X 头(若 XViewMiddleware 已安装), (参阅 middleware 文档)
    JING_PATH
    默认值: '/usr/bin/jing'
    1.2.27 LANGUAGE_CODE:默认值: 'en-us'
    表示默认语言的一个字符串. 必须是标准语言格式. 举例来说, U.S. English 就是 "en-us". 参阅internationalization docs.
    1.2.28 LANGUAGES:默认值: 一个 tuple (内容为所有可用语言). 目前它的值是:
    LANGUAGES = (
    ('bn',
    ('Bengali')),
    ('cs',
    ('Czech')),
    ('cy', ('Welsh')),
    ('da',
    ('Danish')),
    ('de', ('German')),
    ('en',
    ('English')),
    ('es', ('Spanish')),
    ('fr',
    ('French')),
    ('gl', ('Galician')),
    ('is',
    ('Icelandic')),
    ('it', ('Italian')),
    ('no',
    ('Norwegian')),
    ('pt-br', ('Brazilian')),
    ('ro',
    ('Romanian')),
    ('ru', ('Russian')),
    ('sk',
    ('Slovak')),
    ('sr', ('Serbian')),
    ('sv',
    ('Swedish')),
    ('zh-cn', _('Simplified Chinese')),
    )
    1.2.29 MANAGERS:默认值: ADMINS (不论 ADMINS 是否已经设置)
    一个和 ADMINS 同样格式的 tuple , 当 SEND_BROKEN_LINK_EMAILS=True 时, 这些人有权接收死链接通知信息.
    1.2.30 MEDIA_ROOT:默认值: '' (空的字符串)
    一个绝对路径, 用于保存媒体文件
    1.2.31 MEDIA_URL默认值: '' (空的字符串)
    处理媒体服务的URL(媒体文件来自 MEDIA_ROOT)
    1.2.32 PREPEND_WWW:默认值: False
    是否为没有 "www." 前缀的域名添加 "www." 前缀. 当且仅当安装有 CommonMiddleware 后该选项才有效
    1.2.33 ROOT_URLCONF默认值: Not defined
    一个字符串,表示你的根 URLconf 的模块名. 举例来说:"mydjangoapps.urls". 参阅 Django如何处理一个请求.
    1.2.24 ECRET_KEY默认值: '' (空的字符串)
    一个密码. 用于为密码哈希算法提供一个种子.将其设置为一个随机字符串 -- 越长越好. django-admin.py startproject 会自动给你创建一个.
    1.2.25 SEND_BROKEN_LINK_EMAILS默认值: False
    当有人从一个有效Django-powered页面访问另一个Django-powered页面时发现404错误(也就是发现一个死链接)时, 是否发送一封邮件给 MANAGERS. 当且仅当 安装有 CommonMiddleware 时该选项才有效
    1.2.26 SERVER_EMAIL
    默认值: 'root@localhost'
    用来发送错误信息的邮件地址, 比如发送给 ADMINS 和 MANAGERS 的邮件.
    1.2.27 SESSION_COOKIE_AGE:默认值: 1209600 (2周, 以秒计)
    session cookies 的生命周期, 以秒计. 参阅 session docs.
    1.2.28 SESSION_COOKIE_DOMAIN:默认值: None
    session cookies 有效的域. 将其值设置为类似 ".lawrence.com" 这样 cookie 就可以跨域生效, 或者使用None 作为一个标准的域 cookie. 参阅 session docs.
    1.2.29 SESSION_COOKIE_NAME默认值: 'sessionid'
    session 使用的cookie 名字. 参阅 session docs.
    1.2.30 SESSION_SAVE_EVERY_REQUEST默认值: False
    是否每次请求都保存session
    1.2.31 SITE_ID默认值: Not defined
    是一个整数, 表示 django_site 表中的当前站点. 当一个数据包含多个站点数据时,你的程序可以据此 ID 访问特定站点的数据.
    1.2.32 TEMPLATE_DEBUG默认值: False
    一个布尔值,用来开关模板调试模式.若设置为 True, 如果有任何 TemplateSyntaxError,一个详细的错误报告信息页将被显示给你.这个报告包括有关的模板片断,相应的行会自动高亮.
    注意 Django 仅在 DEBUG 为 True 时显示这个信息页面.
    1.2.33 TEMPLATE_DIRS默认值: () (空的 tuple)
    模板源文件目录列表,按搜索顺序. 注意要使用 Unix-风格的前置斜线(即'/'), 即便是在 Windows 上.
    1.2.34 TEMPLATE_LOADERS默认值:('django.template.loaders.filesystem.load_template_source',)
    一个元素为可调用对象(字符串形式的)的 tuple. 这些对象知道如何导入 templates 从各种源中. 参阅 template documentation.
    1.2.35 EMPLATE_STRING_IF_INVALID默认值: '' (空的字符串)
    输出文本, 作为一个字符串. 模板系统将会在出错 (比如说拼错了) 时使用该变量. 参阅 How invalid variables are handled.
    1.2.36 TIME_FORMAT默认值: 'P' (举例来说 4 p.m.)
    Django admin change-list 使用的默认时间格式. 有可能系统的其它部分也使用该格式. 参阅 allowed date format strings.
    1.2.37 TIME_ZONE默认值: 'America/Chicago' (我们可以用 'Asia/Shanghai PRC' )
    一个表示当前时区的字符串. 参阅 选择项列表.
    Django 据此设置转换所有的日期/时间 -- 并不考虑服务器的时区设置. 举例来说, 一台服务器可以服务多个Django-powered 站点,每个站点使用一个独立的时区设置.
    1.2.38 USE_ETAGS默认值: False
    一个布尔值.指定是否输出 "Etag" 头. 这个选项可以节省网络带宽,但损失性能. 只有安装 CommonMiddleware 后这个选项才有用(参阅 middleware 文档)

【5】Django项目配置settings.py详解的更多相关文章

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

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

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

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

  3. Django路由配置之正则表达式详解

    正则表达式详解 urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles ...

  4. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  5. Django的配置文件(settings.py)

    初始项目的配置文件 新建项目默认settings.py的内容的 """ Django settings for ORM project. Generated by 'dj ...

  6. Django的安装、使用详解、自动化测试应用以及程序打包

    1.Django的安装 pip install Django 验证 Django 是否能被 Python 识别 >>> import django >>> prin ...

  7. Maven全局配置文件settings.xml详解(转)

    Maven全局配置文件settings.xml详解   目录 一.概要 1.settings.xml的作用2.settings.xml文件位置3.配置的优先级 二.settings.xml元素详解 1 ...

  8. Django之ORM查询操作详解

    浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操 ...

  9. Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解

    http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...

随机推荐

  1. C++ 函数模板与类模板(使用 Qt 开发编译环境)

    注意:本文中代码均使用 Qt 开发编译环境,如有疑问和建议欢迎随时留言. 模板是 C++ 支持参数化程序设计的工具,通过它可以实现参数多态性.所谓参数多态性,就是将程序所处理的对象的类型参数化,使得一 ...

  2. java有用的启动参数

    三大类选项: 1. 标准选项: 功能是很稳定的,所有的标准选项都是以-开头,比如-version, -server等. 2. X选项:以-X开头,这类选项的功能还是很稳定,但官方的说法是它们的行为可能 ...

  3. Selenium-一个用于Web应用程序测试的工具

    Selenium.pptx

  4. 深入理解7816(2)---关于ATR【转】

    本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0102vcrk.html 深入理解7816(2)---关于ATR 智能卡(此处主要指接触式CPU卡)本身始终 ...

  5. bzoj1977 [BeiJing2010组队]次小生成树 Tree——严格次小生成树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1977 因为严格,所以要记录到 LCA 的一个次小值: 很快写好,然后改掉一堆错误后终于过了样 ...

  6. cloudstack ---部署的架构

    cloudstack跟KVM一起部署的架构 下图是CloudStack跟kvm一起部署的架构: 在每个kvm的宿主机上都需要部署agent程序. cloudstack跟vsphere一起部署的架构 下 ...

  7. php phppowerpoint

    今天早上从订阅的 Zend DevZone 看到篇很有意思的文章. Creating PowerPoint 2007 files using PHP. 试了一下. 果然很又意思, 分享给大家吧. 程序 ...

  8. Gym - 101982A 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) A. Exam

    题面 题意:你和朋友一起做了n道判断题,现在你知道你们两的答案,也知道你朋友对了k个,问你至少对了几个 题解:假设你和朋友n个答案都一样,那你是不是也对了k个,假设你和朋友有1个答案不一样,是不是,你 ...

  9. 在JavaScript中"+"什么时候是链接符号,什么时候是加法运算?

    二元加法运算符“+”在两个操作数都是数字或都是字符串时,计算结果是显而易见的.加号“+”的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数会转换为字符串,加 ...

  10. akka设计模式系列(Actor模型)

    谈到Akka就必须介绍Actor并发模型,而谈到Actor就必须看一篇叫做<A Universal Modular Actor Formalism for Artificial Intellig ...