暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Flask 用户指南 - 快速入门(1)

数据库杂货铺 2022-02-07
301

Flask 快速入门(1

 

着急开始了吗?本文将开始介绍 Flask。请首先按照安装步骤设置项目,并安装好 Flask

 

最小应用程序

 

最小 Flask 应用程序如下所示:

 

from flask import Flask


app = Flask(__name__)


@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
复制

 

这段代码做了什么?

 

1. 首先我们导入了 Flask 类。这个类的一个实例就是我们的 WSGI 应用程序。

 

2. 接下来我们创建这个类的一个实例。第一个参数是应用程序模块或包的名称。__name__ 是引用该名称的一个方便快捷的方式,适用于大多数情况。此参数是必需的,以便 Flask 知道在哪里查找模板和静态文件等资源。

 

3. 然后,使用 route() 装饰器告诉 Flask 哪个 URL 会触发我们的函数。

 

4. 该函数返回我们希望在用户浏览器中显示的消息。默认内容类型为 HTML,因此字符串中的 HTML 将由浏览器呈现。

 

将以上代码保存到 hello.py 文件或者其他文件中。确保不要命名为 flask.py,因为这会与 Flask 本身相冲突。

 

要运行应用程序,请使用 flask 命令或 python -m flask。在此之前,需要通过导出 FLASK_APP 环境变量来告诉终端要使用的应用程序:

 

以在命令行窗口执行为例:

 

> set FLASK_APP=hello
> flask run
复制

 

应用程序发现行为

 

作为快捷方式,如果文件名为 app.py wsgi.py,您不必设置 FLASK_APP 环境变量。有关更多详细信息,请参见后续文章:命令行接口。

 

这将启动一个非常简单的内置服务器,它足以进行测试,但还不足以在生产中使用的。

 

现在访问 http://127.0.0.1:5000/,将看到 hello world 问候语。

 

如果另一个程序已经在使用端口 5000,当服务器尝试启动时,您将看到 OSError: [Errno 98] OSError: [WinError 10013]

 

外部可见服务器

 

如果运行服务器,您会注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意 Python 代码。

 

如果禁用了调试器或信任网络上的用户,只需在命令行中添加 --host=0.0.0.0,即可公开服务器:

 

flask run --host=0.0.0.0
复制

 

这会告诉你的操作系统监听所有公共 IP

 

如果服务器无法启动,该怎么办?

 

如果 python -m flask 出现故障或 flask 不存在,可能有多种原因。首先,需要查看错误消息。

 

老版本 Flask

 

早于 0.11 Flask 版本使用不同的方式启动应用程序。简而言之,flask 命令不存在,python -m flask 也不存在。在这种情况下,您有两种选择:要么升级到较新的 Flask 版本,要么查看开发服务器(以后文章会有介绍)以查看运行服务器的替代方法。

 

无效的导入名称

 

FLASK_APP 环境变量是要在运行 flask run 时导入的模块名称。如果模块名称不正确,启动时会出现导入错误。错误信息将告诉您它试图导入的内容以及失败的原因。

 

最常见的原因是打字错误,或者因为你没有实际创建 app 对象。

 

调试模式

 

flask run 命令不仅仅可以启动开发服务器。通过启用调试模式,如果代码发生更改,服务器将自动重新加载,如果请求过程中出现错误,服务器将在浏览器中显示交互式调试器。

 

 

警告

 

调试器允许从浏览器执行任意 Python 代码。它受 pin 保护,但仍然存在重大安全风险。不要在生产环境中运行开发服务器或调试器。

 

在命令行中执行如下代码启用调试模式:

 

set FLASK_ENV=development
flask run
复制

 

 

 

 

原文:

https://flask.palletsprojects.com/en/2.0.x/quickstart/


文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论