Python---常用的web框架

news2024/12/27 13:57:33

目录

  • 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 HttpResponse

def my_view(request):
    return HttpResponse("Hello, World!")

JSON格式数据

  • JsonResponse:当需要返回 JSON 格式的数据时,视图函数可以返回一个 JsonResponse 对象。这通常用于 AJAX 请求或者提供 API 服务。例如:
from django.http import JsonResponse

def my_json_view(request):
    data = {'key': 'value'}
    return JsonResponse(data)

重定向

  • HttpResponseRedirect:如果需要重定向到另一个 URL,可以返回一个 HttpResponseRedirect 对象。例如:
from django.http import HttpResponseRedirect

def my_redirect_view(request):
    return HttpResponseRedirect('/new_url/')

渲染页面

  • Render:视图函数也可以使用模板来渲染页面,通过返回 render 函数来实现。render 函数会渲染指定的模板,并将上下文数据传递给模板。【优先去setting.py 文件中寻找:TEMPLATES"DIRS": [],其次是去注册了的app目录下的TEMPLATES文件夹】例如:
from django.shortcuts import render

def 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等,方便开发者进行开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1544580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AWS EC2 学习之: 使用 PuTTY 从 Windows 连接到 Linux 实例

启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它。 注意 启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查您的实例是否通过了状态检查。您可以在 Instances 页上的 Status Checks 列中查…

Python基础学习笔记(二)

Python基础语法 注释 注释有: 单行注释、多行注释、文档注释。 单行注释采用 # 符号,后面跟随的都是注释内容多行注释采用 (三个单引号) 或者 """(三个双引号) 包围文档注释采用 """ 包围,一般出现在模块,类,…

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略 目录 Nvidia官网人工智能大模型工具合集的简介 1、网站主要功能包括: Nvidia官网人工智能大模型工具合集的使用方法 1、SDXL-Turbo的使用 2、GEMMA-7B的…

MySQL三种开窗函数详细用法,图文详解

开窗函数的详细用法 第一章、开窗函数的语法1.1)从聚合开窗函数讲起1.2)开窗函数之取值1.3)排名开窗函数 第一章、开窗函数的语法 开窗函数的语法为:over(partition by 列名1 order by 列名2 ),括号中的两个关键词par…

MP4如何把视频转MOV格式? MP4视频转MOV格式的技巧

在现代的数字媒体时代,视频格式转换成为了许多用户必须掌握的技能。特别是将MP4视频转换为MOV格式,这对于需要在Apple设备上播放或编辑视频的用户来说尤为重要。本文将详细介绍如何将MP4视频转换为MOV格式,帮助读者轻松应对不同设备和平台的需…

JavaEE企业开发新技术4

2.16 模拟Spring IOC容器功能-1 2.17 模拟Spring IOC容器功能-2 什么是IOC? 控制反转,把对象创建和对象之间的调用过程交给Spring框架进行管理使用IOC的目的:为了耦合度降低 解释: 模仿 IOC容器的功能,我们利用 Map…

Android内存优化项目经验分享 兼顾效率与性能

背景 项目上线一段时间后,回顾重要页面 保证更好用户体验及生产效率,做了内存优化和下载导出优化,具体效果如最后的一节的表格所示。 下面针对拍摄流程的两个页面 预览页 导出页优化实例进行介绍: 一.拍摄前预览页面优化 预览效果问题 存在…

2024-简单点-pandas

pandas pandas to numpy 尽量不用.values提取数据 numexpr 和 bottleneck加速 布尔操作 describe 自定义describe .pipe df.apply 行或者列级别函数级别应用

更好,更快,更健壮的Android时区更新方式

更好,更快,更健壮的Android时区更新方式 又到了一年一度我们要调整时钟的时候了!哦,等等,你的安卓设备是不是已经自动调整了?对于许多生活在各国的安卓用户来说,这可能并不奇怪。例如,在美国、欧盟和英国,政府已经有一段时间没有改变他们的时间立法,因此用户每天早上…

【PyTorch][chapter 24][李宏毅深度学习][ CycleGAN]【理论】

摘要(Abstract): 本篇主要参考论文分享一下CycleGAN. CycleGAN是实现不同图像之间风格的转换,并且样本数据无需配对即可实现转换 图像到图像的转换是一类视觉和图形问题,其目标是使用对齐图像对的训练集来学习输入图像和输出图像之间的映射(P…

微服务高级篇(四):多级缓存:Nginx本地缓存 --- Redis缓存 --- 进程缓存

文章目录 一、多级缓存概念二、准备工作【导入案例,并搭建Nginx反向代理】2.1 导入商品案例2.1.1 安装MySQL2.1.2 导入SQL2.1.3 导入Demo工程2.1.4 启动2.1.5 导入商品查询页面 三、JVM进程缓存【第三级缓存】3.1 本地进程缓存与分布式缓存的区别3.2 本地进程缓存&a…

厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件开发之功能原理篇

接着上一篇《厨余垃圾处理设备工业监控PLC连接APP小程序智能软硬件开发之功能结构篇》继续总结一下厨余垃圾处理设备智能软硬件统的原理。所有的软硬件系统全是自己一人独自开发,看法和角度难免有局限性。希望抛砖引玉,将该智能软硬件系统分享给更多有类…

字节算法岗二面,凉凉。。。

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

电脑如何更新AMD独立显卡驱动?安装官方驱动的方法来了!

前言 有小伙伴在电脑上安装了独立显卡之后,总会用驱动人生或者驱动精灵等软件给独立显卡安装驱动。这种安装方法并不能说是错的,反正能用就行。 安装官方驱动的办法其实很简单,现在独立显卡一共就那么几家,最常见的显卡就是Nvidi…

【Maven】高效入门

Maven依赖管理项目构建工具 目录 文章目录 Maven依赖管理项目构建工具目录一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具1.2、Maven是一个构建工具1.3、结论 2. Maven介绍3. Maven软件工作原理模型图(了解) 二、Maven安装和配置1. Maven…

iOS-UIFont 实现三方字体的下载和使用

UIFont 系列传送门 第一弹加载本地字体:iOS UIFont-新增第三方字体 第二弹加载线上字体:iOS-UIFont 实现三方字体的下载和使用 前言 在上一章我们完成啦如何加载使用本地的字体。如果我们有很多的字体可供用户选择,我们当然可以全部使用本地字体加载方式,可是这样就增加了…

移动硬盘盒结合PD技术为电脑供电:一种便携高效的供电新方案

在数字化时代,电脑已经成为我们生活和工作中不可或缺的工具。而在电脑的使用过程中,供电问题一直是我们需要关注的重要方面。近年来,随着技术的不断进步,移动硬盘盒子与PD(Power Delivery)技术的结合&#…

技术周刊 117 期:Visual Copilot、INP、Kimi 支持 200 万字上下文、Grok 开源、Figure 01、Open Sora 开源

美味值:🌟🌟🌟🌟🌟 口味:金骏眉 大家好,我是童欧巴。老规矩,咱们先来看技术资讯。 技术资讯 前端 VitePress (早就应该) 1.0 发布MistCSS,只使用 CSS 来…

QT环境搭建

学习QT 一、QT环境搭建二、QT的SDK下载三、认识QT SDK 中自带的一些程序 一、QT环境搭建 QT开发环境,需要安装三个部分。 c编译器(gcc、cl.exe……不是visual studio)QT SDK(QT SDK里面已经内置了C编译器;SDK就是软件…

【网络爬虫】(1) 网络请求,urllib库介绍

各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战。那我们开始吧。 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念。 (1)http 和 https 协议。http是超文本传输&#xf…