为了测试 Flask 安装,请在编辑器中将以下代码输入 Hello.py:
from flask import Flask
app = Flask(__name__)
@app.route(/)
def hello_world():
return Hello World
if __name__ == __main__:
app.run()
必须在项目中导入Flask模块。
Flask类的一个对象是我们的WSGI应用程序。
Flask构造函数使用当前模块(__name __)的名称作为参数。
Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。
app.route(rule, options)
- rule 参数表示与该函数的URL绑定。
- options 是要转发给基础Rule对象的参数列表。
在上面的示例中,/ URL与hello_world()函数绑定。
因此,当在浏览器中打开web服务器的主页时,将呈现该函数的输出。
最后,Flask类的run()方法在本地开发服务器上运行应用程序。
app.run(host, port, debug, options)
所有参数都是可选的
序号 | 参数与描述 |
---|---|
1 | host 要监听的主机名。 默认为127.0.0.1(localhost)。设置为“0.0.0.0”以使服务器在外部可用 |
2 | port 默认值为5000 |
3 | debug 默认为false。 如果设置为true,则提供调试信息 |
4 | options 要转发到底层的Werkzeug服务器。 |
上面给出的Python脚本是从Python shell执行的。
python Hello.py
Python shell中的消息通知您:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在浏览器中打开上述URL(localhost:5000)。将显示“Hello World”消息。
这里注意,如果使用python自带的idle运行的时候可能会报以下错误:
Traceback (most recent call last):
File “C:/learn/python/xuexi/web/demoflask/app.py”, line 27, in
app.run();
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesflaskapp.py”, line 938, in run
cli.show_server_banner(self.env, self.debug, self.name, False)
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesflaskcli.py”, line 629, in show_server_banner
click.echo(message)
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesclickutils.py”, line 217, in echo
file = _default_text_stdout()
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesclick_compat.py”, line 621, in func
rv = wrapper_func()
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesclick_compat.py”, line 385, in get_text_stdout
rv = _get_windows_console_stream(sys.stdout, encoding, errors)
File “C:UserszhangAppDataLocalProgramsPythonPython36libsite-packagesclick_winconsole.py”, line 261, in _get_windows_console_stream
func = _stream_factories.get(f.fileno())
io.UnsupportedOperation: fileno
只要不用idle执行就不会出错了,不影响后续使用。改用cmd下Python执行或者pycharm等运行都能成功。
调试模式
通过调用run()方法启动Flask应用程序。但是,当应用程序正在开发中时,应该为代码中的每个更改手动重新启动它。为避免这种不便,请启用调试支持。
如果代码更改,服务器将自行重新加载。它还将提供一个有用的调试器来跟踪应用程序中的错误。
在运行或将调试参数传递给run()方法之前,通过将application对象的debug属性设置为True来启用Debug模式。
app.debug = True app.run() app.run(debug = True)
作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/flask/20502.html