Django基本介绍及操作
WEB框架:
MVC:Model(数据库)、View(模板文件)、Controller(业务处理)。
MTV:Model(数据库)、Template(模板文件)、View(业务处理)。
Django是一个涵盖全面的重量级WEB框架,属于MTV。
Django的生命周期:
1、简单的生命周期:用户发送请求——>通过URL对应关系进行匹配——>匹配成功通过视图函数(views)进行业务处理——>再返回给用户字符串。
2、完整的生命周期:用户发送请求——>通过URL对应关系进行匹配——>经过中间件——>匹配成功通过视图函数(views)进行业务处理,通过一个HTML文件进行渲染——>再经过中间件——>再返回给用户字符串。
1.安装Django:
pip install django #django后不加参数,表明安装最新版本的Django #或者:pip install django==1.10.2
也可以通过编辑器进行安装,如:在pycharm里面的Project Interpreter里面选择进行添加。
2.创建Django工程:
django-admin startproject project_name
在project_name目录下会有一个project_name的同名文件夹,里面包含了配置信息,以及一个manage.py文件。
目录:
project_name #django工程名 —project_name __init__.py settings.py #配置文件 urls.py #URL对应关系 wsgi.py #遵循WSGI规范 manage.py #管理django程序
3.创建APP:
cd project_name 的目录
python manage.py startapp app_name
这时候project_name的目录中出现了app_name的文件夹。
app_name #app名称 —migrations #数据修改表结构的操作记录 admin.py #Django提供的后台管理 apps.py #配置app models.py #ORM,编写指定的表 tests.py #单元测试 views.py #视图函数,业务代码
4.注册APP:
在project_name的同名文件里的settings文件里添加app:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app_name', ]
5.配置静态文件:
在project_name的同名文件里的settings文件里添加static:
STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
6.配置模板路径:
在project_name的同名文件里的settings文件里添加templates:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], #添加DIRS的路径。 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
7.中间件的操作:
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
注释django.middleware.csrf.CsrfViewMiddleware,如果需要用户人证,则需要在HTML的文件中加入{% csrf_token %}防止跨站请求伪造。
8.定义路由规则:
第一种:直接在project_name中配置url.py文件
from django.contrib import admin from app_name import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), ]
第二种:路由分发,在project_name中配置url.py文件引入include模块,在app_name文件夹创建urls.py文件
from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^app_name/', include('app_name.urls')), ]
from django.conf.urls import url from blog import views urlpatterns = [ url(r'^$', views.index), ]
如果要自定义url链接名称,测通过正则表达式进行筛选。
9.定义视图函数:
在app_name的views.py文件里编写python文件:
from django.shortcuts import render, HttpResponse def index(request): return HttpResponse('Ok') #这种写法,不需要编写HTML文件,就直接给用户返回字符串响应 def index(request): return render(request, 'index.html') #这种写法则通过HTML进行渲染,再返回给用户
10.编写HTML模板文件。
11.运行Django程序:
python manage.py runserver
或者自定义运行的端口与IP:
python manage.py runserver 127.0.0.1:8001
如果要更改IP,则需要配置ALLOWED_HOSTS = [],默认是本地localhost。

浙公网安备 33010602011771号