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应用开发,建议看看这些文档。

相关文章
|
23天前
|
存储 缓存 算法
Python闭包|你应该知道的常见用例(下)
Python闭包|你应该知道的常见用例(下)
14 1
Python闭包|你应该知道的常见用例(下)
|
12天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
12天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
12天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
|
16天前
|
关系型数据库 数据库 数据安全/隐私保护
Python Web开发
Python Web开发
49 6
|
22天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
61 2
|
24天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
126 3
|
29天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
141 45
|
10天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
26 2