目录
- 1. 创建一个简单的接口
- 1.1 具体过程
- 1.2 代码解读
- 1. **导入 Flask**
- 2. **创建 Flask 应用**
- 3. **定义一个路由**
- 4. **运行应用**
- 1.3 遗留问题
- 2. 创建一个复杂接口
- 2.2 具体过程
1. 创建一个简单的接口
1.1 具体过程
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'Hello world Python day!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001)
输出:
* Serving Flask app 'demo02'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5001
* Running on http://192.168.3.13:5001
访问:
1.2 代码解读
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'Hello world Python day!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001)
这段代码使用 Flask 框架创建了一个简单的 Web 接口,下面一步步解释:
1. 导入 Flask
from flask import Flask
这里导入了 Flask
,这是一个轻量级的 Python Web 框架。简单来说,Flask 可以创建网站或接口,让用户可以通过浏览器或应用访问和使用我们的服务。
2. 创建 Flask 应用
app = Flask(__name__)
这里创建了一个 app
对象,它就是整个 Web 应用的核心。Flask(__name__)
让 Flask 知道应用的名称,以便正确找到资源、文件等。
3. 定义一个路由
@app.route('/hello')
def hello():
return 'Hello world Python day!'
@app.route('/hello')
这行代码为应用定义了一个“路由”。你可以把它理解成一个网址,比如我们在浏览器输入的/hello
部分。- 当用户访问
http://127.0.0.1:5001/hello
时,Flask 会执行下面的函数hello()
。 - 这个函数
hello()
的功能很简单,就是返回文本'Hello world Python day!'
,当用户访问这个网址时,这段文字会显示在页面上。
4. 运行应用
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001)
- 这一部分代码表示当你直接运行这个文件时,启动 Flask 应用。
app.run(host='0.0.0.0', port=5001)
告诉 Flask 使用0.0.0.0
作为主机地址,意味着这个应用可以被局域网中的其他设备访问,并在端口5001
上运行。- 启动后,你可以在浏览器中输入
http://127.0.0.1:5001/hello
,查看页面显示的内容。
所以,这段代码实现了一个非常简单的 Web 接口,访问 /hello
会显示 “Hello world Python day!”。通过这种方式,可以一步步搭建和扩展你的 Web 服务!
1.3 遗留问题
-
- 为什么在别的电脑上访问这个地址会被拒绝?
2. 创建一个复杂接口
2.2 具体过程
下面写3个新的接口,让它返回文本信息(text接口),再返回一个JSON数据(json接口)、再返回一个图片(image接口)。
代码如下:
from flask import Flask, jsonify, send_file
app = Flask(__name__)
# 1. 接口1
@app.route('/text')
def text():
return '您正在访问Python写的接口!!!'
# 2. 接口2
@app.route('/json')
def return_json():
data = {'msg': 'This is a json RESPONSE'}
return jsonify(data)
# 3. 接口3
@app.route('/image')
def return_image():
image_path = r'C:\Users\hello\Pictures\Camera Roll\guido.jpg'
return send_file(image_path, mimetype='image/jpeg')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5002)
运行代码:
C:\Users\hello\.conda\envs\tf\python.exe E:/09-code/11-自然语言处理与知识图谱/pypro/practise/demo03.py
* Serving Flask app 'demo03'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5002
* Running on http://192.168.3.13:5002
输出: