Python---常用的web框架

目录

Django

  • 特点:Django是一个全功能的Web框架,提供了许多内置的功能和工具,如ORM、表单处理、认证等。它的设计理念是"一切都包含在框架中",因此适合构建复杂的、大型的Web应用程序。
  • 优势:Django具有强大的开发效率和稳定性,提供了完善的文档和活跃的社区支持。它还有丰富的第三方插件和扩展,可快速构建功能丰富的Web应用。

创建Django项目

【假设说现在创建了一个名为mysite的项目:】

bash 复制代码
django-admin startproject mysite
# startproject 是一个命令,表示创建一个新的Django项目

【那么这个文件的tree为:】

python 复制代码
mysite
{
	manage.py[这是管理项目文件,用于与Django项目进行交互,例如运行开发服务器、执行数据库迁移等]
	mysite
	{
		_init_.py[这是一个空文件,用于将项目目录标记为Python包]
		settings.py[这是项目的配置文件,包含了项目的各种设置,如数据库配置【用户名、密码等等】、静态文件路径、应用程序列表等]
		urls.py[这是项目的URL配置文件,定义了URL与视图函数之间的映射关系,用于处理用户请求]
		asgi.py[这是一个用于异步部署项目的入口文件,用于与ASGI服务器进行通信【本质:编写socket处理网络请求】]
		wsgi.py[这是一个用于【同步】部署项目的入口文件,用于与Web服务器进行通信【本质:编写socket处理网络请求】]
	}
}

启动Django项目

bash 复制代码
# 进入manage.py所在的上层文件夹
python manage.py runserver

引入APP

  • 通常会在django项目中创建app,在app中编写项目中的具体业务
bash 复制代码
# 进入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 内容或者其他数据。例如:
python 复制代码
from django.http import HttpResponse

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

JSON格式数据

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

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

重定向

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

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

渲染页面

  • Render:视图函数也可以使用模板来渲染页面,通过返回 render 函数来实现。render 函数会渲染指定的模板,并将上下文数据传递给模板。【优先去setting.py 文件中寻找:TEMPLATES"DIRS": [],其次是去注册了的app目录下的TEMPLATES文件夹】例如:
python 复制代码
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等,方便开发者进行开发。
相关推荐
逊嘘6 分钟前
【Java语言】抽象类与接口
java·开发语言·jvm
Half-up8 分钟前
C语言心型代码解析
c语言·开发语言
我要洋人死18 分钟前
导航栏及下拉菜单的实现
前端·css·css3
龙哥说跨境29 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
科技探秘人30 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
Source.Liu30 分钟前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng30 分钟前
【Rust中的迭代器】
开发语言·后端·rust
科技探秘人30 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
余衫马33 分钟前
Rust-Trait 特征编程
开发语言·后端·rust
JerryXZR36 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6