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

本节内容

  • 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. 树莓派玩耍笔记1 -- 开箱 & 安装系统以及简单配置

    零.前言 树莓派是什么? 吃的么? 呵呵,假设您连这个还不知道,真是out 了. 麻烦出门左拐.百度去(或者,看看官网去?),算了.还是粘贴一些大家都知道的树莓派百科吧: 树莓派由注冊于英国的慈善组织 ...

  2. Asp.NET之对象学习

    一.总述 二.具体介绍 1.Request对象 Request对象是用来获取client在请求一个页面或传送一个Form时提供的全部信息,这包含可以标识浏览器和用户的HTTP变量,存储在client的 ...

  3. ios17--自定义控件2改进

    控制器: // // XMGViewController.h #import <UIKit/UIKit.h> @interface XMGViewController : UIViewCo ...

  4. JavaScript Patterns 2.1 Writing Maintainable Code

    Revisiting the code after some time has passed requires: • Time to relearn and understand the proble ...

  5. luogu 3808 【模板】AC自动机(简单版)

    我太菜了 棒神%%% #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib ...

  6. 简单动态规划——最长公共子序列&&最长回文子序列&&最长上升||下降子序列

    最长公共子序列,顾名思义当然是求两个字符串的最长公共子序列啦,当然,这只是一道非常菜的动规,所以直接附上代码: #include<iostream> #include<cstdio& ...

  7. bzoj3907 网格 & bzoj2822 [AHOI2012]树屋阶梯——卡特兰数+高精度

    题目:bzoj3907:https://www.lydsy.com/JudgeOnline/problem.php?id=3907 bzoj2822:https://www.lydsy.com/Jud ...

  8. Spark 机器学习 ---CountVectorizer

    文本特征提取->> CountVectorizer:基于词频数的文档向量 package Spark_MLlib import org.apache.spark.ml.feature.Co ...

  9. fprintf与stderr、stdout的使用

    #include <stdio.h> void main() { fprintf(stderr,"soyo8888!"); fprintf(stdout,"s ...

  10. 客户端JavaScript基础 网页上的输入输出

    创建: 2017/10/06 完成: 2017/10/07   更新: 2017/10/15 增加了通过事件监听器登陆事件的方法的链接   # TODO: 补充 基于Canvas的图象 客户端Java ...