【Python】Django Web 框架

一、常用的Web开发框架

1.Django

Django是一个由Python写成的开放源代码的Web应用框架。这套框架的主要目标是使开发复杂、数据库驱动的网站变得简单。Django注重组件的重用性和"可拔插性"、敏捷开发和DRY(Don't Repeat Yourself)法则

2.Flask

Flask是一个微型的Python开发的Web框架,同时也被称为"microframework",它主要面向需求简单,项目周期短的Web小应用。

3.Meteor

Meteor是一种新型的JavaScript框架,用于WebAPP应用程序开发。

4.Laravel

Laravel是一个简单优雅的PHPWeb开发框架,允许开发者通过简单,高雅,表达式语法开发出很棒的Web应用,将开发者从"意大利面条式代码"中解放出来。在功能上具有语法表现力更丰富、高质量的文档、丰富的扩展包。

5.Tornado

Tornado龙卷风是一个开源的网络服务器框架,旨在解决C10K问题,它是基于社交聚合网站FriendFeed的实时信息服务开发而来的。

二、Django流程介绍

1.Django的MVC模式

Model(模式):表示应用程序的核心(如数据库记录列表)

View(视图):显示数据

Controller(控制器):处理输出

MVC模式具有生命周期低,部署快,可维护性高等优点。

2.Django的MTV模式

Model(模式):负责业务对象与数据库对象

Template(模板):负责如何把页面展示给用户

View(视图):负责业务逻辑,并在适当的时候调用Model和Template

三、安装Django框架

在Windows操作系统下安装Django的步骤如下:

Django的下载地址:https://www.djangoproject.com/download/

(1)下载Django压缩包,解压并和python的安装目录放在同一个根目录。

(2)进入Django目录,执行python.setup.py install,然后开始安装。

(3)Django将要安装到Python的Lib下site-packbag下。

(4)然后配置环境变量。

(5)添加完成之后就可以使用Django的命令新建工程了。

四、路由

1.URL(路由)的概念

URL是Web服务的路口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应。

2.Django处理请求

加载该模块并且寻找可用的urlpatterns。

依次匹配每个URL模式,在与请求的URL相配的第一个模式停下来。也就是说,url匹配说从下往上的短路操作,所以url在列表中的位置非常关键。

导入并且调用匹配行中给定的视图,该视图是一个简单的python函数,或者基于类的函数。视图将获得如下参数:

(1)一个HttpRequst实例。

(2)如果匹配的正则表达式返回了没有命名的组,那么正则表达式匹配的内容将作为位置参数提供视图。

(3)关键字参数由正则表达式匹配的命名组组成,但是可以被django.conf.urls.url()的可选参数kwargs覆盖。

3.表单

Django的From表单类与Django模型描述对象的逻辑结构、行为以及它呈现给我们内容的形式方式大致相同。

4.视图

视图的本质就是一个Python中的函数,作用是接收web请求并且响应Web请求。

五、Django模板

模板是一个文本,用于分离文档的表现形式和内容。模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签)

模板包含两部分:

(1)静态部分,包含html、css、js。

(2)动态部分,即模板语言

Django处理模板分为两个阶段:

(1)加载:根据给定的路径找到模板文件,编译后反正该内存中。

(2)渲染:使用上下文数据对模板插值并返回生成的字符串。

Django模板的过滤器非常实用,用来返回的变量值做一些特殊处理,常用的过滤器,如下表所示:【取一部分】

|------------------------------|------------|
| 过滤器 | 作用 |
| {{value|lower}} | 将变量全部转换成小写 |
| {{value|upper}} | 将变量全部转换成大写 |
| {{value|default:"nothing"}} | 变量设置默认值 |

相关推荐
Salt_07281 分钟前
DAY 40 早停策略和模型权重的保存
人工智能·python·算法·机器学习
卜锦元13 分钟前
Golang后端性能优化手册(第三章:代码层面性能优化)
开发语言·数据结构·后端·算法·性能优化·golang
yenggd24 分钟前
华为批量下发配置命令使用telnetlib模块
网络·python·华为
DARLING Zero two♡34 分钟前
接入 AI Ping 限免接口,让 GLM-4.7 与 MiniMax-M2.1 成为你的免费 C++ 审计专家
开发语言·c++·人工智能
码界奇点36 分钟前
Java外功核心7深入源码拆解Spring Bean作用域生命周期与自动装配
java·开发语言·spring·dba·源代码管理
不惑_38 分钟前
通俗理解感知机(Perceptron)
人工智能·python
Everybody_up40 分钟前
pycharm中编译环境配置
ide·python·pycharm
零小陈上(shouhou6668889)1 小时前
YOLOv8+PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)
python·qt·yolo
luoluoal1 小时前
基于python的爬虫的贵州菜价可视化系统(源码+文档)
python·mysql·django·毕业设计·源码
老华带你飞1 小时前
考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端