Python框架篇之Django(Django项目搭建全过程、Web框架与Django)

一、Web框架与Django本质

1、Web框架的理解
框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统。对于所有的Web应用,实际上就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

2、Django的本质
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。简单来说,就是Django给我们提供了一个非常完善的Web框架,是目前Python搭建项目最好用的框架。我们只需要对其中的文件进行修改与增加内容,就能轻松实现请求与响应的基本功能,最终渲染出对应的网页。

3、MVC模式
MVC就是把web应用分为模型(M),控制器©,视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器©接受用户的输入调用模型和视图完成用户的请求。

4、MTV模式
MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同:

  • Model(模型):负责业务对象与数据库的对象(ORM)
  • Template(模版):负责如何把页面展示给用户
  • View(视图):负责业务逻辑,并在适当的时候调用Model和Template
    另外还有一个路由分发器,即url分发器,它能将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。
  • URL(路由分发):负责分发链接并绑定对应函数的

5、Django的框架
15
图片引自:老男孩python运维开发资料

二、从安装到实现一个完整的Django项目

1、Django的安装
在cmd命令行窗口中,进入Python的安装目录,再进入目录Scripts,然后的输入pip install django
1

2、创建一个Django项目
依然是在命令行窗口中,先cd进入你需要创建项目的目录中或者Django的bin目录中,再输入django-admin startproject 项目名,就可以创建一个Django项目了
2
创建完一个项目之后,相当于有了一个框架,但是我还需要创建一个应用或者多个,每一个应用就是一个功能,比如QQ有聊天功能,还有浏览空间的功能。manage.py startapp 项目名,比如我输入

manage.py startapp blog

3

  • manage.py文件:就是整个项目的执行文件

在我们创建的这个blog应用里面,有其中几个重要文件对应的功能是:
4
另外,mysite目录是一个全局作用的,在里面有
6

  • urls.py文件:路由分发功能的实现
  • settings.py文件:存放于该Django项目相关的所有配置信息

在settings.py里面我们需要将自定义的应用也添加进去:
5
3、在pycharm中创建Django项目
7
在pycharm中创建完一个项目之后,假如我们要实现一个进入自定义的一个网址,服务端就会返回一个准确的时间。首先我们在urls.py文件里添加上这个路径并绑定应用函数:
8
然后我们在创建的应用文件夹里的views.py文件里写上我们的显示时间的函数:
9

然后我们需要导入views.py文件,才能调用那个显示时间的应用函数:
10
4、返回一个时间
templates:用来存放页面(html文件)的目录
11
返回页面需要带上形参:

return render(req,"index.html")

在html文件中两个大括号渲染的变量,在python中定义同名的变量,然后可以用locals()直接引用:

# html文件中
<h2>Now:{{ t }}</h2>
# python文件中
t=time.ctime()
return render(req,"index.html",locals())

5、启动Django项目
runserver:启动Django项目(在终端中输入)
12
然后就会返回一个网址,这个就是我们访问的主页:
13

6、Django项目效果
14
这样,一个最简单却很完整的Django项目就完成了

7、views.py代码

from django.shortcuts import render,HttpResponse
# 还必须导入HttpResponse模块,才可以将python定义的内容返回给前端去显示
import time

# Create your views here.

# 这个req形参是浏览器发送给服务端的全部信息,服务端打包后传入到该函数的一个对象
def show_time(req):
    # return HttpResponse("Welcome to my blog!")
    t=time.ctime()
    return render(req,"index.html",locals())

可以看到在整个网页的形成与渲染过程中,应用函数show_time仅仅只用了3行代码就实现了,可以说Django是非常得高效与便捷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章