Python和Web--使用Web框架之Flask简单用例

简介: Python和Web--使用Web框架之Flask简单用例

Python和Web–使用Web框架之Flask简单用例
对于重要的Web应用,大多数人不会直接为其编写CGI脚本,而是选择使用Web框架,因为它会替你完成很多繁重的工作。这样的框架很多,今天我使用既简单又有用的Flask(http://flask.pocoo.org)上。使用pip安装这个框架,命令如下:

$ pip install flask

image.png

下面编写一个计算幂的函数:

def powers(n = 10):
  return ', '.join(str(2**i) for i in range(n))

想让每个人都能使用它!要使用Flask来实现这个目标,首先使用合适的名称实例化Flask类,并将这个函数的URL路径告诉它。脚本名称powers.py,示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/9/22 5:06 PM
# 文件      :powers.py
# IDE      :PyCharm


from flask import Flask
app = Flask(__name__)

@app.route('/')
def powers(n = 10):
    return ', '.join(str(2**i) for i in range(n))

本人是macOS系统,让Flask运行它,代码如下:

(venv) liuxiaowei@MacBookAir 使用Web框架 %  export FLASK_APP=powers.py
(venv) liuxiaowei@MacBookAir 使用Web框架 % flask run
 * Serving Flask app 'powers.py' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

最后两行是Flask的输出。如果你在浏览器中输入上面的URL, 将看到函数powers返回的字符串。如下图:
image.png

也可以给这函数指定更具体的路径。如果使用route(’/powers’)而不是(’/’), 这个函数将位于http://127.0.0.1:5000/powers。这样,可以设置多个函数,每个函数的URL 各不相同。也可以向函数提供参数,要指定参数,可使用尖括号,例如’/powers/’。这样,斜杠后面的内容将作为关键字的参数n的值。但这样提供的是一个字符串,而这里需要的是一个整数。为执行转换,可以使用route(’/powers/’)。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/9/22 5:06 PM
# 文件      :powers.py
# IDE      :PyCharm


from flask import Flask
app = Flask(__name__)

@app.route('/<int:n>')   # 添加参数n,并转为int型
def powers(n = 10):
    return ', '.join(str(2**i) for i in range(n))

这样修改后,如果重新启动Flask,并访问URLhttp://127.0.0.1:5000/powers/3,将得到输出1, 2, 4。如下图:

image.png

注 意

# FLASK_APP=powers.py中间不能有空格,否则报错
(venv) liuxiaowei@MacBookAir 使用Web框架 %  export FLASK_APP=powers.py

如果如下带空格输入,就会报错:

(venv) liuxiaowei@MacBookAir 使用Web框架 % export FLASK_APP = powers.py
zsh: bad assignment

备注

Flask还有很多其他功能,其文档也很容易理解。如果尝试简单的服务器端Web应用开发,建议看看这些文档。

相关文章
|
1天前
|
前端开发 JavaScript Python
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
在前后端分离的Web应用开发模式中,如何实现前后端之间的实时数据交换成为了一个重要议题。传统的轮询或长轮询方式在实时性、资源消耗和服务器压力方面存在明显不足,而WebSocket技术的出现则为这一问题提供了优雅的解决方案。本文将通过实战案例,详细介绍如何在Python Web应用中运用WebSocket技术,实现前后端之间的实时数据交换。
8 0
|
1天前
|
API 数据库 开发者
逆袭之路!Django/Flask助你成为Web开发界的璀璨新星!
在浩瀚的IT宇宙中,Web开发如同璀璨星河中的一片繁华之地,吸引着无数追梦者前来探索与征服。对于初入此行、渴望脱颖而出的你,Django与Flask无疑是两把开启成功之门的钥匙。它们以各自独特的魅力,助力无数开发者踏上了从平凡到非凡的逆袭之旅。
6 0
|
1天前
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
5 0
|
1天前
|
运维 负载均衡 安全
深度解析:Python Web前后端分离架构中WebSocket的选型与实现策略
深度解析:Python Web前后端分离架构中WebSocket的选型与实现策略
8 0
|
1天前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
6 0
|
1月前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
41 1
|
27天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
60 8
只需四步,轻松开发三维模型Web应用
|
18天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
72 6
|
17天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
41 3
|
18天前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
40 4