在web开发领域里著名的MVC模式,所谓MVC就是把web应用分为模型(M)、控制器(C)、视图(V)三层,达到了解耦的效果。html
一次完整的请求如图:python
可是django用的是MTV模式,本质是同样的,也是为了各组件之间保持松耦合关系,只是定义上有些不一样。web
除此以外、还须要一个URL分发器,将用户发送的每个请求逐一匹配、再分发给不一样的View处理。shell
整个流程以下图:数据库
通常是用户经过浏览器向咱们的服务器发起一个请求(request),这个请求若是匹配到了url,就会去执行url对应的函数,若是不涉及数据调用。那这个时候函数返回一个模版(也就是网页)给用户。若是须要调取数据,函数调用模型,模型去数据库查找数据并返回查询结果。视图函数把返回的数据填充到模版文件中渲染,最后返回给网页给用户。django
一、下载浏览器
pip install django
二、建立django项目服务器
django-admin.py startproject mysite
两条命令执行完毕后、会生成目录结构以下app
manage.py ----- Django项目里面的工具,经过它能够调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其余一些工做的变量。
urls.py ----- 负责把URL模式映射到应用程序。 函数
三、在项目目录下建立应用
python manage.py startapp blog
命令执行后、项目会多出一个应用文件夹、目录结构以下
四、启动Django项目
python manage.py runserver 0.0.0.0:8080 (IP + PORT 不写默认127.0.0.1:8000)
项目已启动、快去浏览器访问:http://127.0.0.0.1:8080
由于是django2.0版本,外观美观了许多!
新建一个项目
一、urls.py 加一条url
1 from django.contrib import admin 2 from django.urls import path 3 from app01 import views # 导入app01项目中的视图函数 4 5 urlpatterns = [ 6 path('admin/', admin.site.urls), 7 path(r'timer/',views.timer), # 127.0.0.1:8001/timer 会执行 views.py 文件中的timer()函数 8 ]
二、views.py 中定义一个timer()函数
1 from django.shortcuts import render 2 import datetime # 导入日期时间模块 3 4 5 # Create your views here. 6 def timer(request): 7 t = datetime.datetime.now().strftime('%Y-%m-%d %X') # 当前时间对象 8 return render(request, 'timer.html', {"time": t}) # render() django的三个响应对象之一,渲染页面用的,第一个参数是固定的,第二个跟要显示的html文件,第三个跟要返回的数据。在html文件里渲染时间对象并展现页面给用户看
三、项目文件下有个template文件、存放html文件的。timer.html
1 <!DOCTYPE html> 2 <html lang="zh_CN"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>动态获取当前时间</title> 6 </head> 7 <body> 8 9 <!--固定语法。视图函数传来一个字典{"time":t} 这里双括号获取--> 10 <h4>当前时间:{{ time }}</h4> 11 12 </body> 13 </html>
四、执行
五、浏览器打开看看吧!