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

  • 相关阅读:
    IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
    牛客练习赛105(A切蛋糕的贝贝、B抱歉,这没有集美、D点分治分点)
    2023年9月25日,历史上的今天大事件早读
    Windows内存管理总结
    如何构建安全的App网络通信?
    阿里云张新涛:连接产业上下游,构建XR协作生态
    人工智能AI 全栈体系(二)
    《C++避坑神器·二十》C++智能指针简单使用
    Elasticsearch 8.11 中的合并更少,摄取更快
    # 用acme.sh申请证书(含泛域名)
  • 原文地址:https://blog.csdn.net/2401_86008949/article/details/140920260