【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"}} | 变量设置默认值 |

相关推荐
一点媛艺41 分钟前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风1 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生2 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功2 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
老猿讲编程2 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk3 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*3 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue3 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang