Django起步
一、MTV和MVC模型
Web框架中有两种分类,一个是MVC模型,另一个就是MTV模型,Django就是一个典型的MTV模型的框架。MTV模型的M指的是Model模型模块,它负责数据库相关的操作、T指的是Template模板,它负责如何把页面展示给用户、V指的是View视图,它负责业务逻辑,并在适当的时候调用Model和Template。此外Django还有一个urls模块,它负责把用户的URL请求转发给对应的业务函数处理。
二、开始一个Django项目
1、创建工程
django-admin startproject 工程名 django-admin命令在安装django模块后生成于python安装目录下的bin目录中
工程创建后会生成一个全局的manage.py文件,通过它可以调用django shell和数据库等
在工程目录下会有如下文件:
settings.py 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量
urls.py 负责把URL请求映射到应用程序
wsgi.py 负责HTTP请求处理
2、创建应用
django-admin startapp 应用名 该命令应该在工程目录下运行,同时一个工程可以包含多个应用
应用目录下会生成如下文件:
admin.py
apps.py
migrations目录
models.py 负责数据库处理
tests.py
views.py 负责业务逻辑处理
3、同步更改数据库表或字段
当models有修改时必须停止django,执行以下命令再重启项目
python manage.py makemigrations
python manage.py migrate
如以上步骤无效,先删除数据库中的所有表,再删除app目录下的migrations目录下的所有文件,然后执行以下命令
python manage.py makemigrations app名
python manage.py migrate
3.6及以上版本python在同步数据库之前需要先将数据库修改为使用MySQL数据库或其他数据库
4、启动工程
python manage.py runserver IP:端口
5、清空数据库
python manage.py flush
6、创建超级管理员以及修改用户密码
python manage.py createsuperuser
python manage.py changepassword 用户名
7、进入终端
python manage.py shell python的shell,可以调用当前项目models的API
python manage.py dbshell 进入数据库
8、查看Django的所有命令
python manage.py
9、静态文件配置
in settings
STATIC_URL = '/static/' # 别名
STATICFILES_DIRS = (os.path.join(BASE_DIR,"static"), #实际名 ,即实际文件夹的名字)
10、媒体配置
in settings
MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media","upload")
in urls配置
from django.views.static import serve
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),]
11、修改数据库设置
in settings
DATABASES={
‘default’:{
‘ENGINE’:’django.db.backends.mysql’,
’NAME’:’数据库名’,
’USER’:’连接mysql的用户名’,
’PASSWORD’:’连接mysql的密码’,
’HOST’:’mysql服务器ip’,
’PORT’:’mysql端口’,
'OPTIONS':{'sql_mode': 'traditional',}
in 工程目录下的__init__.py
import pymysql
pymysql.install_as_MySQLdb()
12、注册APP
当项目中有多个应用时,需要在配置文件中注册该应用
in settings
INSTALLED_APPS = [‘’,’’,……’CMDB’]
13、导入Django的所有配置
from django.conf import settings
settings['STATICFILES_DIRS'] 以字典形式取配置信息
14、Django请求生命周期
请求从外部经过中间件过滤,经过最后一层中间件时从缓存中查找所需数据,如果有就返回给用户,如果没有则通过URL找到对应函数,函数从数据库拿出数据并和模板渲染形成一个字符串,经过中间件返回给用户浏览器并在经过第一 层中间件时在缓存中保存一份数据。

浙公网安备 33010602011771号