首页 > Python基础教程 >
-
教你如何使用 flask 框架在浏览器打印 hello world(2)
想要验证安装是否成功,可以打开Python解释器,并用import语句来导入它:
import flask
如果语句没有报错,那么恭喜你,Flask安装成功了!
"Hello, World" Flask应用
Flask网站展示了一个仅有五行代码的简单示例应用程序。而我会告诉你一个稍微更复杂的例子,它将为你编写更大的应用程序提供一个很好的基础结构。
应用程序是存在于包中的。在Python中,包含__init__.py
文件的子目录被视为一个可导入的包。当你导入一个包时,__init__.py
会执行并定义这个包暴露给外界的属性。
mkdir app
并在其下创建文件__init__.py
,输入如下的代码:
from flask import Flask
app = Flask(__name__)
from app import routes
上面的脚本仅仅是从flask中导入的类Flask
,并以此类创建了一个应用程序对象。传递给Flask
类的__name__
变量是一个Python预定义的变量,它表示当前调用它的模块的名字。当需要加载相关的资源,如我将在第二章讲到的模板文件,Flask就使用这个位置作为起点来计算绝对路径。代码的最后,应用程序导入尚未存在的routes
模块。
其一,这里有两个实体名为app
。 app
包由app目录和__init__.py
脚本来定义构成,并在from app import routes
语句中被引用。 app
变量被定义为__init__.py
脚本中的Flask
类的一个实例,以至于它成为app
包的属性。
其二,routes
模块是在底部导入的,而不是在脚本的顶部。最下面的导入是解决循环导入的问题,这是Flask应用程序的常见问题。你将会看到routes
模块需要导入在这个脚本中定义的app
变量,因此将routes
的导入放在底部可以避免由于这两个文件之间的相互引用而导致的错误。
那么在routes
模块中有些什么?路由是应用程序实现的不同URL。在Flask中,应用程序路由的处理逻辑被编写为Python函数,称为视图函数。视图函数被映射到一个或多个路由URL,以便Flask知道当客户端请求给定的URL时执行什么逻辑。
这是需要写入到app/routes.py中的第一个视图函数的代码: