Django版本 : 1.11.11
一. Django流程
1. MVC是众所周知的设计模式,即 : 将应用程序分为三个部分 : model(模型),view(视图),controller(控制器), 其中 :
M -- 是应用程序用于处理应用程序数据逻辑的部分,通常模型对象负责在数据中存取数据.
V -- 是应用程序中处理数据显示的部分.通常视图是依据模型数据创建的.
C -- 是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并行模型发送数据.
2. django也是一个MVC框架. 但是在django中, 控制器接收用户输入的部分由框架自行处理,所以django里更关注的是Model(模型), Template(模板)和Views(视图), 称为MTV模式 :
M -- 模型, 即数据存取层. 该层处理的是与数据相关的所有事物 : 如何存取, 如何验证有效性, 包含哪些行为以及数据之间的关系等.
T -- 模板, 即表现层. 该层处理的是与表现相关的决定 : 如何在页面或其他类型文档中进行显示.
V -- 视图,即业务逻辑层. 该层包含存取模型及调取恰当模板的相关逻辑. 可以将它看做模型与模板之间的桥梁.
二. Django基本配置
1. 常用命令
python manage.py runserver ip:port (启动服务器,默认ip和端口为http://127.0.0.1:8000/)
python manage.py startapp appname (新建 app)
python manage.py syncdb (同步数据库命令,Django 1.7及以上版本需要用以下的命令)
python manage.py makemigrations (显示并记录所有数据的改动)
python manage.py migrate (将改动更新到数据库)
python manage.py createsuperuser (创建超级管理员)
python manage.py dbshell (数据库命令行)
python manage.py (查看命令列表)
2. 程序目录
3. 数据库配置文件
#在与Django项目同名的包内的settings.py文件内配置 # 默认是SQLit 3 的配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # MySQL的配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', #注意这里的数据库应该以utf-8编码 'USER': 'xxx', #数据库账户 'PASSWORD': 'xxx', 'HOST': '', #数据库主机IP地址 'PORT': '', #数据库端口 } } # 对于python3的使用者们还需要再加一步操作 # 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替 # 如下设置放置的与Django项目同名的包下的 __init__.py文件中 import pymysql pymysql.install_as_MySQLdb() # PostgreSQL配置 DATABASES = { 'default': { 'NAME': 'app_data', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'USER': 'XXX', 'PASSWORD': 'XXX' } # Oracle配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracle', 'NAME': 'xe', 'USER': 'a_user', 'PASSWORD': 'a_password', 'HOST': '', 'PORT': '', } }
Django框架对于开发者来说高度透明化,对于不同数据库的具体使用方法是一致的, 改变数据库只需要变动上述配置即可.
4. 静态文件添加
# 首先在项目根目录下创建static目录 # 接着在settings.py 文件下添加 STATIC_URL = '/static/' # 默认已添加,使用静态文件时的前缀 STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), #行末的逗号不能漏 ) # 这样在template中就可以导入static目录下的静态文件啦 # 例: <script src="/static/jquery-1.12.4.js"></script>
三. Django路由系统
URL就像是Django所支撑网站的目录. 它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表; 就是以这种方式告诉Django, 对于这个URL调用对应的代码, URL的加载就是从配置文件中开始.
基本格式 :
from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]
参数说明 :
正则表达式:一个正则表达式字符串
views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
参数:可选的要传递给视图函数的默认参数(字典形式)
别名:一个可选的name参数
注意事项 :
urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续。
若要从URL中捕获一个值,只需要在它周围放置一对圆括号(分组匹配)。
不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
每个正则表达式前面的'r' 是可选的但是建议加上。
补充 :
Django settings.py配置文件中默认没有 APPEND_SLASH 这个参数,但 Django 默认这个参数为 APPEND_SLASH = True。 其作用就是自动在网址结尾加'/'。