返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的Web开发框架怎么使用
  • 449
分享到

Python中的Web开发框架怎么使用

2023-07-06 00:07:00 449人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python中的web开发框架怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中的WEB开发框架怎么使用文章都会有所收获,下面我们一起来看看吧。在开始之前,我们先要安装好需要

这篇文章主要介绍了python中的web开发框架怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中的WEB开发框架怎么使用文章都会有所收获,下面我们一起来看看吧。

在开始之前,我们先要安装好需要用到的模块,通过pip命令。

pip install fastapi

而ASGI服务器可以使用uvicorn,那么同样地。

pip install uvicorn

HelloWorld

我们先尝试用flask框架来写一个HelloWorld,代码如下:

from flask import Flask, requestimport JSONapp = Flask(__name__)@app.route('/')def hello_world(): return 'hello world'if __name__ == '__main__': app.run(host='0.0.0.0', port=8889)

小编用的开发工具PyCharm,我们运行这个脚本会弹出以下的结果。

Python中的Web开发框架怎么使用

然后在浏览器当中输入弹出来的url去访问页面,如下所示就会出现含有“hello world”的页面。

Python中的Web开发框架怎么使用

从代码的逻辑中来看,app = Flask(__name__)是创建Flask程序实例,我们在浏览器中输入url发送请求给web服务器,然后web服务器将url转发给Flask程序实例,因此需要知道对于每一个url请求需要启动哪一部分的代码,所以保存了url和Python函数之间的映射关系,处理上述两者之间关系的是路由,是使用程序实例app.route装饰器来实现。而执行最后的app.run()就可以启动服务了,0.0.0.0表示监听所有地址,指定的端口号是8889,那么我们来看一下相对应的FastAPI版本的“HelloWorld”是什么样子的,代码如下:

from fastapi import FastAPIfrom fastapi.responses import PlainTextResponse, htmlResponse, FileResponseimport uvicornapp = FastAPI()@app.get("/", response_class=PlainTextResponse)async def hello(): ## async可加可不加,这个随意 return "Hello World!"@app.get("/items/{item_id}")def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}if __name__ == '__main__': uvicorn.run('fast_api_1:app', host='0.0.0.0', port=8000)

我们同样来运行这段代码,FastAPI默认监听的地址是127.0.0.1,端口号指定是8000,因此我们输入Http://127.0.0.1:8000/,结果如下所示:

Python中的Web开发框架怎么使用

由于返回的是一个字符串,因此我们在response_class处填的是PlainTextResponse,同时我们也可以在浏览器中输入http://127.0.0.1:8000/items/5?q=somequery,出来的结果如下所示:

Python中的Web开发框架怎么使用

返回随机数

我们在上面的“Hello World”的基础之上再来写几个案例,例如返回随机数的操作,在Flask框架当中的代码如下:

@app.route('/random-number')def random_number(): return str(random.randrange(100))

我们在浏览器中测试一下出来的结果,如下所示:

Python中的Web开发框架怎么使用

而在FastAPI框架当中的代码也是非常类似的。

@app.get('/random-number', response_class=PlainTextResponse)async def random_number(): return str(random.randrange(100))

判断是否都是由字母组成

接下来我们来看一下,当我们发送一个GET请求,判断当中的一个url请求参数是否都是由字母组成的,其中Flask框架当中的代码如下:

@app.route('/alpha', methods=['GET'])def alpha(): text = request.args.get('text', '') result = {'text': text, 'is_alpha' : text.isalpha()} return jsonify(result)

我们在浏览器中测试一下出来的结果,如下所示:

Python中的Web开发框架怎么使用

而在FastAPI框架当中相对应的代码如下:

@app.get('/alpha')async def alpha(text: str): result = {'text': text, 'is_alpha' : text.isalpha()}return result

创建新用户

上面的几个案例都是GET请求,下面我们来看一下POST请求该如何处理,例如我们想通过POST请求来创建一个新用户,在Flask框架中的代码如下:

@app.route('/create-user', methods=['POST'])def create_user(): id = request.fORM.get('id', '0001') name = request.form.get('name', 'Anonymous') data = {'id': id, 'name': name} result = {'status_code': '0', 'status_message' : 'Success', 'data': data} return jsonify(result)

可以直接在Postman当中测试一下该API的功能,如下所示:

Python中的Web开发框架怎么使用

我们需要在“methods”当中指定是用POST请求,而在FastAPI框架当中则不需要指定,直接只用app.post()装饰器即可:

@app.post('/create-user')async def create_user(id: str = Form(...), name: str = Form(...)): data = {'id': id, 'name': name} result = {'status_code': '0', 'status_message' : 'Success', 'data': data} return result

返回静态页面

而要是碰到需要返回一个静态页面的时候,在Flask框架中的代码是这样子的。

@app.route('/get-webpage', methods=['GET'])def get_webpage(): return render_template('flask_1.html', message="Contact Us")

而在FastAPI框架当中则稍微有些麻烦,代码如下:

app.mount("/static", StaticFiles(directory="static"), name="static")## 用来加载静态页面templates = Jinja2Templates(directory="templates")@app.get('/get-webpage', response_class=HTMLResponse)async def get_webpage(request: Request): return templates.TemplateResponse("index.html", {"request": request, "message": "Contact Us"})

由于返回的是静态页面,因此response_class相对应的是HTMLResponse

总结

我们将上面所写的Flask代码全部都归总一下,如下所示:

from flask import Flask, request, render_templateimport randomfrom flask import jsonifyimport jsonapp = Flask(__name__)@app.route('/')def hello_world(): return 'hello world'@app.route('/random-number')def random_number(): return str(random.randrange(100))@app.route('/alpha', methods=['GET'])def alpha(): text = request.args.get('text', '') result = {'text': text, 'is_alpha' : text.isalpha()} return jsonify(result)@app.route('/create-user', methods=['POST'])def create_user(): id = request.form.get('id', '0001') name = request.form.get('name', 'Anonymous') data = {'id': id, 'name': name} result = {'status_code': '0', 'status_message' : 'Success', 'data': data} return jsonify(result)@app.route('/get-webpage', methods=['GET'])def get_webpage(): return render_template('flask_1.html', message="Contact Us")if __name__ == '__main__': app.run(host='0.0.0.0', port=8889)

而将所有的FastAPI框架下的代码全部汇总到一起,则如下所示:

from fastapi import FastAPI, Request, Formimport uvicornfrom fastapi.staticfiles import StaticFilesfrom fastapi.responses import PlainTextResponse, HTMLResponse, FileResponseimport randomfrom fastapi.templating import Jinja2Templatesapp = FastAPI()app.mount("/templates", StaticFiles(directory="templates"), name="templates")templates = Jinja2Templates(directory="templates")@app.get("/", response_class=PlainTextResponse)async def hello(): return "Hello World!"@app.get("/items/{item_id}")def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}@app.get('/random-number', response_class=PlainTextResponse)async def random_number(): return str(random.randrange(100))@app.get('/get-webpage', response_class=HTMLResponse)async def get_webpage(request: Request): return templates.TemplateResponse("index.html", {"request": request, "message": "Contact Us"})if __name__ == '__main__':uvicorn.run('fast_api_1:app', host='0.0.0.0', port=8000)

关于“Python中的Web开发框架怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python中的Web开发框架怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python中的Web开发框架怎么使用

本文链接: https://lsjlt.com/news/356890.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中的Web开发框架怎么使用
    这篇文章主要介绍了Python中的Web开发框架怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中的Web开发框架怎么使用文章都会有所收获,下面我们一起来看看吧。在开始之前,我们先要安装好需要...
    99+
    2023-07-06
  • Python web开发框架Pyramid怎么用
    要使用Python web开发框架Pyramid,你需要按照以下步骤进行操作: 安装Pyramid:使用pip命令安装Pyram...
    99+
    2023-10-23
    Python Pyramid
  • 怎么使用Python开发自定义Web框架
    开发自定义Web框架接收web服务器的动态资源请求,给web服务器提供处理动态资源请求的服务。根据请求资源路径的后缀名进行判断:如果请求资源路径的后缀名是.html则是动态资源请求, 让web框架程序进行处理。否则是静态资源请求,让web服...
    99+
    2023-05-17
    Python web
  • Python怎么使用Web框架Flask开发项目
    本篇内容主要讲解“Python怎么使用Web框架Flask开发项目”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么使用Web框架Flask开发项目”吧!一、简介Flask是一个轻量...
    99+
    2023-07-06
  • Python使用Web框架Flask开发项目
    目录一、简介二、安装三、从 Hello World 开始3.1 Hello World3.2 修改Flask的配置3.3 调试模式3.4 绑定IP和端口3.5 本节源码四、获取 UR...
    99+
    2024-04-02
  • Python中怎么使用Django框架开发
    今天就跟大家聊聊有关Python中怎么使用Django框架开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立Python Django开发框架,实现表单的有效性检验。可以方便的从...
    99+
    2023-06-17
  • python中web开发框架有哪些
    python中的web开发框架有Django、web.py、Bottle、Flask常见的几种DjangoDjango是一个开放源代码的Web应用框架,由Python编写,其采用了MTV框架模式,具有易维护、高度可定制和可扩展的特点。web...
    99+
    2024-04-02
  • Python如何使用Web框架Flask开发项目
    一、简介Flask是一个轻量级的基于Python的web框架。这份文档中的代码使用 Python 3 运行。 建议在 linux 下实践本教程中命令行操作、执行代码。二、安装通过pip3安装Flask即可:$ sudo pip3 insta...
    99+
    2023-05-14
    Python web Flask
  • golang框架在web开发中的作用?
    go 框架为 go 语言的 web 开发提供了强大的工具集,简化了路由、模板呈现、数据验证、orm 和 api 构建等任务。它还具有快速高效、内置并发性、标准库集成和活跃社区等优点。但它...
    99+
    2024-05-24
    golang web开发 git 标准库
  • Python开发自定义Web框架
    文章目录 开发自定义Web框架1.开发Web服务器主体程序2.开发Web框架主体程序3.使用模板来展示响应内容4.开发框架的路由列表功能5.采用装饰器的方式添加路由6.电影列表页面的开发案例...
    99+
    2023-10-04
    python 服务器 后端
  • Python Web开发用Flask还Django框架好
    本篇内容主要讲解“Python Web开发用Flask还Django框架好”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Web开发用Flask还Django框架好”吧!是否有考虑过...
    99+
    2023-06-02
  • 我的第一个python web开发框架(
      前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了。因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了。   在写ORM模块时,我们已经对产品接口的分页查询、新增、修改...
    99+
    2023-01-30
    第一个 框架 python
  • 37 个 Python Web 开发框架总结
    Q:Web 框架到底是什么?A:Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。Q:Web 框架有什么作用?A:使用 Web 框架,很多的业务逻辑外的...
    99+
    2023-05-14
    Python Web 开发框
  • 如何使用HTML5框架加速Web开发
    本篇内容介绍了“如何使用HTML5框架加速Web开发”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2024-04-02
  • Web开发最佳的Python框架有哪些
    这篇文章将为大家详细讲解有关Web开发最佳的Python框架有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python 时目前最流行和代码最高效的编程语言之一。Python框架能帮助你...
    99+
    2023-06-19
  • 为什么 Django 是 Python Web 开发的首选框架?
    作为一种高效的 Python Web 开发框架,Django 一直备受开发者们的青睐。它提供了许多强大的功能,使得 Web 开发变得更加简单和高效。本文将探讨为什么 Django 是 Python Web 开发的首选框架,并且将演示一些代码...
    99+
    2023-07-26
    http django shell
  • Python用Bottle轻量级框架进行Web开发
    当前Python Web开发中的框架算Django最为流行了,但是本文介绍的是一个较为轻量级的Web框架:Bottle框架。理论性的东西就不讲了,直接上实例代码。 1.问题描述 最近做一个系统...
    99+
    2022-06-04
    框架 Python Bottle
  • html开发使用框架是怎么用的
    使用 html 框架可以缩短开发时间、提高代码质量、实现响应式设计并获得社区支持。具体步骤包括:选择框架、安装框架、使用框架组件、自定义样式、实现响应式设计。注意事项有学习曲线、代码依赖...
    99+
    2024-05-21
    css bootstrap
  • 手把手教你入门Python中的Web开发框架
    说到web开发框架,小编平常用Flask和Django的比较多,其中的Flask属于是轻量级的开发框架,写一个API接口也是十分地方便,不过今天我们要介绍的框架FastAPI同样在Python开发者当中有着较好地口碑,那么在开始之前,我们先...
    99+
    2023-05-14
    Python web 编程语言
  • 在C++中使用哪些库或框架进行Web开发?
    c++++ 中的 web 开发涉及使用库和框架,如 boost.asio、libcurl、poco、cppcms、drogon 和 serval。这些库提供网络功能、协议支持和模块化 w...
    99+
    2024-05-12
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作