文章目录

  • 一、Web框架与Django本质
  • 二、从安装到实现一个完整的Django项目

一、Web框架与Django本质

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

2、Python的WEB框架
Python的WEB框架有Django、Tornado、Flask 、Zope TurboGearsWeb2py(Webpy)、Pylons等多种。Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。

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

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

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

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

6、Django原理图

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

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

2、创建一个Django项目
依然是在命令行窗口中,先cd进入你需要创建项目的目录中或者Django的bin目录中,再输入django-admin startproject 项目名,就可以创建一个Django项目了

创建完一个项目之后,相当于有了一个框架,但是我还需要创建一个应用或者多个,每一个应用就是一个功能,比如QQ有聊天功能,还有浏览空间的功能。manage.py startapp 项目名,比如我输入

manage.py startapp blog

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

在我们创建的这个blog应用里面,有其中几个重要文件对应的功能是:

另外,mysite目录是一个全局作用的,在里面有

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

在settings.py里面我们需要将自定义的应用也添加进去:

3、在pycharm中创建Django项目

在pycharm中创建完一个项目之后,假如我们要实现一个进入自定义的一个网址,服务端就会返回一个准确的时间。首先我们在urls.py文件里添加上这个路径并绑定应用函数:

然后我们在创建的应用文件夹里的views.py文件里写上我们的显示时间的函数:

然后我们需要导入views.py文件,才能调用那个显示时间的应用函数:

4、返回一个时间
templates:用来存放页面(html文件)的目录

返回页面需要带上形参:

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项目(在终端中输入)

然后就会返回一个网址,这个就是我们访问的主页:

6、Django项目效果

这样,一个最简单却很完整的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是非常得高效与便捷

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

  1. python搭建django框架,Python之Web框架Django项目搭建全过程

    Python之Web框架Django项目搭建全过程 IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mysql:5.5 注:可通过pip fre ...

  2. Django之项目搭建和配置总结(一)

    安装和创建虚拟环境 参考:linux系统下Python虚拟环境的安装和使用 安装Django包 先进入虚拟环境,在联网下执行: pip install django==1.8.7 1.8.7表示dja ...

  3. python django flask介绍_Python开发WEB框架Flask详细介绍

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

  4. 艿艿连肝了几个周末,写了一篇贼长的 Spring 响应式 Web 框架 WebFlux!市面第二完整~...

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...

  5. 艿艿连肝了几个周末,写了一篇贼长的 Spring 响应式 Web 框架 WebFlux!市面第二完整~

    本文在提供完整代码示例,可见 https://github.com/YunaiV/SpringBoot-Labs 的 lab-27 目录. 原创不易,给点个 Star 嘿,一起冲鸭! 1. 概述 友情 ...

  6. gin 项目结构_Go Web 框架 Gin 路由的学习

    Gin 是目前应用比较广泛的Golang web 框架.目前,Github Star 数已经达到了3.8w. 框架的实现非常简单,可定制性非常强,性能也比较好,深受golang开发者的喜爱.Gin 提 ...

  7. 搭建java web框架_程序员搭建轻量级Javaweb框架,教程详细

    搭建Java Web项目 1.新建maven项目,create from archetype,选择maven-archetype-webapp 2.填写GroupId,ArtifactId和Versi ...

  8. django 热启动_传统的Web框架如何部署在Serverless架构上(以Flask为例)

    前言 Serverless架构是一个新的概念,也可以说是一个新的架构或者技术,但是无论他有多新,都不能一下子完成现有都开发习惯到Serverless架构的过渡,让现有的工程师放弃现有的Express. ...

  9. Python框架篇:结构化的网页抓取框架-Scrapy

    前言 大家好,我是一身正气的辣条哥 今天主要跟大家分享一下Scrapy,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的 ...

最新文章

  1. 哪里可以找到python的免费教程-哪里可以找到比较靠谱的Python教程?
  2. 7-二路归并排序C实现(递增递减的简单转换)
  3. 华为OJ: 公共字符串计算
  4. 一只紧握笔的手:地震中的感人图片之二
  5. python oracle连接池_【Python + Oracle】Python Oracle连接池—改进版
  6. MyBatis的学习总结:调用存储过程【参考】
  7. POJ 2960 博弈论
  8. linux环境下的TIME_WAIT和CLOSE_WAIT问题解决方法
  9. EMNLP 2022 和 COLING 2022,投哪个会议比较好?
  10. DPDK编程指南 (1 --3)
  11. VAssistX 脚本
  12. 硬件设计漫谈1 —模组设计
  13. 《机器学习实战(第二版)》学习记录
  14. 分享9个ps、pr免费教程网站
  15. 公路堵车概率模型:Nagel-Schreckenberg 模型模拟
  16. 怎样拨打韩国国际长途电话
  17. 中文编程从入门到精通中文编程语言教学视频
  18. 【数据可视化】360度教你如何全面学习可视化——上篇
  19. logrotate - rotates, compresses, and mails system logs
  20. 宇视摄像机——枪机后焦调节方法

热门文章

  1. 解读mysql日志_全方位解读 MySQL 日志实现内幕(四)
  2. android 仿美团悬浮,类似美团悬浮框的效果
  3. 连接linux系统的mysql,Linux系统MySQL开启远程连接
  4. python读取日志错误信息_使用Python将Exception异常错误堆栈信息写入日志文件
  5. python进入高考-Python已进入小学教材将加入高考
  6. 修改蓝牙耳机按键映射_拆解报告:QCY T4 TWS蓝牙耳机
  7. python执行系统命令的方法_python执行系统命令的方法 :os.system(),subprocess.popen(),command...
  8. java tdd测试驱动开发_测试驱动开发TDD(test drive development)
  9. 压缩包安装_SPSS 21 下载(内附压缩包及安装过程)
  10. 2021年即墨萃英中学高考成绩查询,2017即墨萃英中学青岛十九中录取分数线发布...