Flask 框架app = Flask(__name__) 解析

本文介绍了一个简单的Flask应用实例,包括如何定义路由和视图函数,以及如何运行Flask应用。通过示例代码展示了基本的Flask应用结构,并解释了各部分的功能。
#!/usr/local/bin/python
# coding=utf-8

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=9000)
'''
第4行,引入Flask类,Flask类实现了一个WSGI应用
第5行,app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__。
    让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。
第7~9行,使用app.route装饰器会将URL和执行的视图函数的关系保存到app.url_map属性上。
    处理URL和视图函数的关系的程序就是路由,这里的视图函数就是hello_world。
第11行,使用这个判断可以保证当其他文件引用这个文件的时候(例如“from hello import app”)不会执行这个判断内的代码,也就是不会执行app.run函数。
第12行,执行app.run就可以启动服务了。默认Flask只监听虚拟机的本地127.0.0.1这个地址,端口为5000。
    而我们对虚拟机做的端口转发端口是9000,所以需要制定host和port参数,0.0.0.0表示监听所有地址,这样就可以在本机访问了。
    服务器启动后,会调用werkzeug.serving.run_simple进入轮询,默认使用单进程单线程的werkzeug.serving.BaseWSGIServer处理请求,
    实际上还是使用标准库BaseHTTPServer.HTTPServer,通过select.select做0.5秒的“while TRUE”的事件轮询。
    当我们访问“http://127.0.0.1:9000/”,通过app.url_map找到注册的“/”这个URL模式,就找到了对应的hello_world函数执行,返回“hello world!”,状态码为200。
    如果访问一个不存在的路径,如访问“http://127.0.0.1:9000/a”,Flask找不到对应的模式,就会向浏览器返回“Not Found”,状态码为404
'''

这是 Flask 框架中创建应用实例的一行代码。下面我将详细解释这行代码的含义,并提供一个简单的 Flask 应用示例。 ### 代码及解释 ```python from flask import Flask app = Flask(__name__) ``` - `from flask import Flask`: 这行代码从 flask 包中导入了 Flask 类。Flask 类是框架的核心,用于构建 WSGI(Web Server Gateway Interface)应用。 - `app = Flask(__name__)`: 这里我们创建了一个 Flask 的实例,`__name__` 是一个 Python 内置变量,表示当前模块的名称。Flask 使用它来确定资源所在路径,比如模板文件和静态文件的位置。 ### 完整示例 以下是一个完整的 Flask 应用程序示例,包含路由和视图函数: ```python from flask import Flask # 创建 Flask 应用实例 app = Flask(__name__) # 定义路由和视图函数 @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': # 启动开发服务器 app.run(debug=True) ``` **解释:** 1. `@app.route('/')`: 这是一个装饰器,用来绑定 URL 路径到视图函数。这里的 `'/'` 表示根路径。 2. `def hello_world()`: 这是视图函数,当用户访问根路径时,这个函数会被调用,并返回字符串 `'Hello, World!'`。 3. `if __name__ == '__main__':`: 确保只有在直接运行该脚本时才会启动服务器,而如果被其他模块导入则不会自动启动。 4. `app.run(debug=True)`: 启动 Flask 内置的开发服务器,`debug=True` 参数表示启用调试模式,这样可以在代码修改后自动重载,并且会显示调试信息。 ### 运行方式 保存上述代码为 `app.py`,然后在终端运行: ```bash python app.py ``` 默认情况下,Flask 应用会在本地地址 `http://127.0.0.1:5000/` 上运行。打开浏览器并访问该地址,你应该能看到 "Hello, World!" 的输出。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值