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

相关推荐
2501_944521596 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理6 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
wangchunyu1148 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
程序 代码狂人9 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_9445215910 小时前
Immer 跨端三方库仓颉适配全流程
python·eclipse·django
信誓旦旦的程序猿10 小时前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_9445215910 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港10 小时前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_9679873710 小时前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying883810 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化