flask 安装

 
pip install Flask

安装参考

项目示例

接口示例

 
$ mkdir flask
$ cd flask/
$ cat app.py 
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=8000)

启动
(base) xt@ai1:/opt/tpf/aiwks/code/flask$ python app.py 
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://192.168.48.220:8000/ (Press CTRL+C to quit)

访问
在浏览器中输入
http://192.168.48.220:8000/ 

警告处理
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.

安装 wsgi
pip install gevent
$ cat app.py 
from flask import Flask
from gevent import pywsgi
app = Flask(__name__)

@app.route('/', methods=['get'])
def hello():
    return 'Hello flask!'

if __name__ == '__main__':
    server = pywsgi.WSGIServer(('0.0.0.0', 8000), app)
    server.serve_forever()

启动
$ python app.py

访问
在浏览器中输入
http://192.168.48.220:8000/ 

每访问一次,后台就输出一次 
$ python app.py 
192.168.48.220 - - [2023-03-15 11:08:05] "GET / HTTP/1.1" 200 128 0.000962

接口传参

字符串参数

 
@app.route('/tree/<data>')
def tree_model(data):
    return 'tree: %s' % data

访问
http://192.168.48.220:8000/tree/aaabbb

返回 
tree: aaabbb

整数参数

 
@app.route('/tree/<int:num>')
def main_features(num):
    return 'top %d' % num


访问
http://192.168.48.220:8000/tree/100

返回 
top 100

POST请求

 
@app.route('/model/update', methods=["POST"])
def model_update():
    account = request.form.get("account")
    password = request.form.get("password")
    

 
from flask import Flask, request, jsonify  

app = Flask(__name__)  
    
@app.route('/submit', methods=['POST'])  
def submit_data():  
    # 从POST请求中提取数据  
    # 假设表单中有一个名为'name'的字段和一个名为'age'的字段  
    name = request.form.get('name')  
    age = request.form.get('age', type=int)  # 尝试将age转换为int类型  
    
    # 简单的处理逻辑:返回接收到的数据  
    # 实际应用中,你可能会进行更复杂的数据处理或数据库操作  
    response_data = {  
        'status': 'success',  
        'received_data': {  
            'name': name,  
            'age': age  
        }  
    }  
    
    # 使用jsonify返回JSON格式的数据  
    return jsonify(response_data)  
    
if __name__ == '__main__':  
    app.run(debug=True)
    

 

    
跨域请求

 
pip install -U flask-cors

 
from flask import Flask  
from flask_cors import CORS  
    
app = Flask(__name__)  
    
# 允许所有域的跨域请求  
CORS(app, resources={r"/api/*": {"origins": "*"}})  
    
# 或者,更具体地指定允许的源  
# CORS(app, origins=['http://localhost:8080'])  
    
@app.route('/api/hello', methods=['GET'])  
def hello():  
    return {'message': 'Hello, World!'}  
    
if __name__ == '__main__':  
    app.run(debug=True)

 


参考