Python---常用的web框架
目录
- Django
- 创建Django项目
- 启动Django项目
- 引入APP
- 视图函数
- 例如纯文本
- JSON格式数据
- 重定向
- 渲染页面
- 返回错误提示
- Flask
- Pyramid
- Tornado
Django
- 特点:Django是一个全功能的Web框架,提供了许多内置的功能和工具,如ORM、表单处理、认证等。它的设计理念是“一切都包含在框架中”,因此适合构建复杂的、大型的Web应用程序。
- 优势:Django具有强大的开发效率和稳定性,提供了完善的文档和活跃的社区支持。它还有丰富的第三方插件和扩展,可快速构建功能丰富的Web应用。
创建Django项目
【假设说现在创建了一个名为mysite的项目:】
django-admin startproject mysite
# startproject 是一个命令,表示创建一个新的Django项目
【那么这个文件的tree为:】
mysite
{manage.py[这是管理项目文件,用于与Django项目进行交互,例如运行开发服务器、执行数据库迁移等]mysite{_init_.py[这是一个空文件,用于将项目目录标记为Python包]settings.py[这是项目的配置文件,包含了项目的各种设置,如数据库配置【用户名、密码等等】、静态文件路径、应用程序列表等]urls.py[这是项目的URL配置文件,定义了URL与视图函数之间的映射关系,用于处理用户请求]asgi.py[这是一个用于异步部署项目的入口文件,用于与ASGI服务器进行通信【本质:编写socket处理网络请求】]wsgi.py[这是一个用于【同步】部署项目的入口文件,用于与Web服务器进行通信【本质:编写socket处理网络请求】]}
}
启动Django项目
# 进入manage.py所在的上层文件夹
python manage.py runserver
引入APP
- 通常会在django项目中创建app,在app中编写项目中的具体业务。
# 进入manage.py所在的上层文件夹
python3 manage.py startapp web
_init_.py
:这是一个空文件,用于将app
文件夹标识为Python
包。admin.py
:在这个文件中,可以注册模型(Model
)到Django
的后台管理界面,以便在后台管理中对模型进行增删改查操作。apps.py
:这个文件定义了应用程序的配置类,包括应用程序的名称、标签和其他配置选项。models.py
:在这个文件中,你可以定义应用程序的模型(Model
),即数据库表的结构和字段**[类 -> SQL]**。tests.py
:这个文件用于编写应用程序的单元测试代码,以确保应用程序的功能正常运行。views.py
:在这个文件中,可以定义应用程序的视图(View)函数,即处理HTTP
请求并返回响应的函数或类。migrations
文件夹:是用于存放应用程序的数据库迁移文件的地方,它是Django
中管理数据库模式变更的重要组成部分。
【在Django
中,数据库迁移是一种管理数据库模式变更的机制。当在应用程序的models.py
文件中修改了模型(Model
)的结构或字段时,需要创建一个数据库迁移文件来记录这些变更。这个迁移文件包含了数据库模式的变更操作,例如创建表、添加字段、修改字段等。】
视图函数
在 Django
项目中,视图函数通常会返回不同类型的响应,常见的返回值包括:
例如纯文本
HttpResponse
:视图函数可以返回一个HttpResponse
对象,用于返回包含指定内容的HTTP
响应。可以是纯文本、HTML
内容或者其他数据。例如:
from django.http import HttpResponsedef my_view(request):return HttpResponse("Hello, World!")
JSON格式数据
JsonResponse
:当需要返回JSON
格式的数据时,视图函数可以返回一个JsonResponse
对象。这通常用于AJAX
请求或者提供API
服务。例如:
from django.http import JsonResponsedef my_json_view(request):data = {'key': 'value'}return JsonResponse(data)
重定向
HttpResponseRedirect
:如果需要重定向到另一个URL
,可以返回一个HttpResponseRedirect
对象。例如:
from django.http import HttpResponseRedirectdef my_redirect_view(request):return HttpResponseRedirect('/new_url/')
渲染页面
Render
:视图函数也可以使用模板来渲染页面,通过返回render
函数来实现。render
函数会渲染指定的模板,并将上下文数据传递给模板。【优先去setting.py
文件中寻找:TEMPLATES
的"DIRS": []
,其次是去注册了的app目录下的TEMPLATES
文件夹】例如:
from django.shortcuts import renderdef my_template_view(request):context = {'name': 'Alice'}return render(request, 'my_template.html', context)
返回错误提示
HttpResponseNotFound、HttpResponseServerError
等:Django
还提供了一些特定状态码的响应对象,比如HttpResponseNotFound
用于返回 404 错误页面,HttpResponseServerError
用于返回 500 错误页面等。
Flask
- 特点:
Flask
是一个轻量级的Web框架,它的设计简单、灵活,没有过多的约束。它提供了基本的功能,如路由、模板引擎等,但其他高级功能需要使用第三方扩展。 - 优势:
Flask
非常适合构建小型的、简单的Web应用,它的学习曲线较低,灵活性高,可以根据需求选择合适的扩展。同时,Flask的性能也比较好,适合处理高并发的请求。
Pyramid
- 特点:Pyramid是一个通用的Web框架,它的设计目标是简单、可扩展和可维护。它提供了灵活的URL路由、视图、模板等功能,同时也支持各种第三方库和工具。
- 优势:Pyramid具有良好的可扩展性和灵活性,可以根据项目的需求选择合适的组件和工具。它的文档详细,社区活跃,有很多示例和教程可供参考。
Tornado
- 特点:Tornado是一个高性能的Web框架,它使用非阻塞的I/O模型,适合处理高并发的请求。它还提供了异步的特性,可以方便地处理长连接和实时通信。
- 优势:Tornado的性能非常出色,适合构建需要高并发和实时性的Web应用。它还有一些内置的工具和库,如异步HTTP客户端、WebSocket等,方便开发者进行开发。
相关文章:

Python---常用的web框架
目录 Django创建Django项目启动Django项目引入APP视图函数例如纯文本JSON格式数据重定向渲染页面返回错误提示 FlaskPyramidTornado Django 特点:Django是一个全功能的Web框架,提供了许多内置的功能和工具,如ORM、表单处理、认证等。它的设计…...
Jenkins Docker 部署指南
Jenkins Docker 部署指南 本文档为您提供了在 Docker 容器中部署 Jenkins 的全面指南,使用的是阿里云的容器镜像服务。请仔细遵循以下步骤以确保成功设置。 前提条件 主机上安装了 Docker。拥有阿里云容器镜像服务的账户。 部署步骤 1. 登录阿里云容器镜像服务…...

海外媒体宣发:商务视频推广数字化变革全解析-华媒舍
在当今数字化时代,商务视频推广正迎来一场革命性的数字化变革。本文将为您解析这场变革的核心元素和相关内容。 商务视频推广 商务视频推广是一种通过视频形式来宣传和推广产品、服务或品牌的方法。传统的推广方式主要是通过文字和图片进行,而商务视频推…...
文件服务: 功能介绍
文章目录 一、需求背景二、核心功能1、功能要求2、非工能要求 三、存储方式四、实现方式五、核心技术 一、需求背景 二、核心功能 1、功能要求 文件上传文件预览文件分片上传文件分片合并文件秒传文件断点续传文件下载 2、非工能要求 高扩展性:方便添加新的存储…...
php 快速入门(二)
一、运算符 1.1 算术运算符 运算描述举例加$a$b-减,负数功能$a-$b*乘$a*$b/除$a/$b%取余$a%$b <?php$s1 3;$s2 5;$res1 $s1$s2;$res2 $s1-$s2;$res3 $s1*$s2;$res4 $s1/$s2;$res5 $s1%$s2;echo $res1."<br>";echo "${res2}<b…...
java面试题|(1)多线程如何停止一个线程?
在Java中,停止一个线程的方法通常有以下几种: 使用标志位停止线程: 这是一种常见的做法,即通过设置一个标志位,在线程的执行体中检查这个标志位,当标志位满足某个条件时,退出线程执行。 class M…...

使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务
文章目录 使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务1、功能原理实现2、将自己的Java项目通过Git上传到阿里的代码仓库中,也可以通过绑定Gitee或者GitHub账号进行导入3、创建自己的阿里云镜像私仓3、进入阿里的C…...

Mybatis的核心配置文件
MyBatis的全局配置文件mybatis-config.xml,配置内容如下: properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFa…...

四川易点慧电子商务抖音小店:安全可靠,购物新选择
随着互联网的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。在众多电商平台中,四川易点慧电子商务抖音小店以其安全可靠、服务优质的特点,逐渐赢得了消费者的信赖和好评。 一、平台背景实力雄厚 四川易点慧电子商务有限公司是一家…...

基于数据沙箱与LLM用例自愈的UI自动化测试平台
本期作者 项目参与人员: 顾伊凡、陈钰广、张又中、杨雨浩、樊执政、熊梦园、何璇、谭楠 UI自动化测试能够在一定程度上确保产品质量,尤其在降本提效的大背景下,其重要性愈发凸显。理想情况下,UI自动化测试不仅能够能帮我们规避不少…...
面试算法-117-组合总和 III
题目 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4…...

邮件接口与第三方平台的集成的方式有哪些?
邮件接口如何实现高效通信?怎么有效地利用邮件接口? 邮件接口与第三方平台的集成已经成为了企业提升工作效率、优化用户体验的关键环节。那么,邮件接口与第三方平台的集成方式究竟有哪些呢?接下来,AokSend就来探讨一下…...

qrcode插件-生成二维码
安装 yarn add qrcodejs2 --save npm install qrcodejs2 --save 使用 <template><div><div id"qrcodeImg"></div><!-- 创建一个div,并设置id --></div> </template> <script> import QRCode from q…...

基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现
基于JavaSpringmvcmyabtishtml的鲜花商城系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末…...

[论文笔记] Dual-Channel Span for Aspect Sentiment Triplet Extraction
一种利用句法依赖和词性相关性信息来过滤噪声(无关跨度)的基于span方法。 会议EMNLP 2023作者Pan Li, Ping Li, Kai Zhang团队Southwest Petroleum University论文地址https://aclanthology.org/2023.emnlp-main.17/代码地址https://github.com/bert-ply…...

【C语言】linux内核pci_enable_device函数和_PCI_NOP宏
pci_enable_device 一、注释 static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags) {struct pci_dev *bridge;int err;int i, bars 0;/** 此时电源状态可能是未知的,可能是由于新启动或者设备移除调用。* 因此获取当前的电源状态&…...

网络: 套接字
套接字: 在网络上进行进程间通信 网络字节序与主机字节序的转化 sockaddr sockaddr struct sockaddr {sa_family_t sa_family; // 地址族char sa_data[14]; // 地址数据,具体内容与地址族相关 };sockaddr_in :主要是地址类型, 端口号, IP地址. 基于IPv4编程…...

Day57-Nginx反向代理与负载均衡初步应用
Day57-Nginx反向代理与负载均衡初步应用 1. Nginx代理介绍2. Nginx代理常见模式2.1 正向代理2.2 反向代理2.3 正向与反向代理区别 3. Nginx代理支持协议4. Nginx反向代理场景实践5. lb01安装部署nginx 1. Nginx代理介绍 1)在没有代理的情况下,都是客户端…...
【PHP】通过PHP开启/暂停Apache、MySQL或其他服务
目录 一、前言 二、代码 一、前言 有些时候我们需要开启或暂停一些服务,比如说开启Apach或暂停MySQL服务等,最近工作中也开发了这方面的功能,记录下来怎样使用PHP语言来开启或暂停Apache、MySQL服务的运行状态。 这种方法也适用其他服务。…...
JAVA中spring介绍
Spring框架是一个开源的Java平台,它最初由Rod Johnson于2003年创建,目的是简化企业级应用的开发。Spring框架的核心特性包括控制反转(IoC)、面向切面编程(AOP)、事务管理、数据访问等。它通过提供一套综合的…...

latex下载与安装
用jupyter导出pdf时,需要用到Tex 1.Tex下载安装 官网 直接git下载 git clone https://github.com/latex3/latex2e.git 或者 清华大学开源软件镜像 双击.bat文件 大概需要1-2小时,如果安装失败,重新进行安装 查看是否安装成功ÿ…...

JavaParser 手动安装和配置
目录 前言 一、安装 Maven 工具 1.1 Maven 软件的下载 1.2 Maven 软件的安装 1.3 Maven 环境变量配置 1.4 通过命令检查 Maven 版本 二、配置 Maven 仓库 2.1 修改仓库目录 2.2 添加国内镜像 三、从 Github 下载 JavaParser 3.1 下载并解压 JavaParser 3.2 从路径打…...
再次度过我的创作纪念日
机缘 写博客的机缘巧合已经在上一篇博客中写到了,至于收获和成就也不一一赘述了。想和大家聊的呢就这最近这一年左右的经历吧 日常 自从2022年开始,入职了一家大型的项目外派公司,名字就不说了。开始了我的保险公司系统的开发工作。工作地点…...

云电脑火爆出圈,如何选择和使用?--腾讯云、ToDesk云电脑、青椒云使用评测和攻略
前言: Hello大家好,我是Dream。在当下,科技的飞速发展已经深入影响着我们的日常生活,特别是随着物联网的兴起和5G网络的普及,云计算作为一个重要的技术概念也逐渐走进了我们的视野。云计算早已不再是一个陌生的名词&am…...
webpack原理之-打包流程热更新HMR
webpack打包流程? 1. 初始化: 启动构建,读取与合并配置参数,加载Plugin,实例化Compiler; 2. 编译: 从 entry出发,针对每个 Module 串行调用对应的 loader 去翻译文件的内容,再找到该 Module 依赖…...

SELinux详解
文章目录 SELinux详解什么是SELinux当初设计的目标:避免资源的误用传统的文件权限与账号主要的关系:自主访问控制(DAC)以策略规则制定特定进程读取特定文件:强制访问控制(MAC) SELinux的运行模式安全上下文进程与文件SELinux类型字段的相关性…...
Go语言实现SSE中转demo
Go语言实现SSE中转demo 文章概要:本文主要通过一个demo来介绍如何使用Go语言实现SSE中转。 本文内容来自:谷流仓AI - ai.guliucang.com 前提 已安装Go语言环境(参考这篇文章:Macbook安装Go以及镜像设置) 创建项目 创建项目目录…...

国内IP修改软件下载指南
在互联网时代,IP地址扮演了一个非常重要的角色。国内IP修改成为一些用户迫切需求的问题,因为它可以帮助用户解决一些特定的网络访问问题。那么,要修改国内IP地址,我们该使用哪些软件呢?虎观代理小二将为大家列举几款可…...
模数转换器 SIG1230A 国产平替 ADS1230,替代 ADS1230
信格勒微电子的芯片产品已通过行业头部大厂导入验证,深受百万终端客户好评。 而且因为 fully compatible. 板子拿来,换个芯片, 性能更好 。MCU不用改 c code。 SIG1230A 10/80SPS 20-bit ADC with PGA Compatible Parts ADS1230 fully…...

获取淘宝商品评论的爬虫技术分享(已封装API,可测试)
item_review-获得淘宝商品评论 公共参数 请求地址: taobao/item_review 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,it…...