01-flask简单介绍

Flask是一个使用 Python 编写的轻量级 Web 应用框架,对比与Django框架呢,他的灵活度就很高了,可以自己一些设计代码框架。
比较适合一些,分层比较少,逻辑不怎么复杂的web项目

 

pip安装

pip install flask  -i https://pypi.tuna.tsinghua.edu.cn/simple

 

简单实例

from flask import Flask

# 实例化flask对象
app = Flask(__name__)

# 第一种路由设置方法(推荐)
# @app.route('/hello')
# @app.route('/hello/')
def hello():
    return "Hello World!"

# 第二种路由设置方法
app.add_url_rule('/hello', view_func=hello)

# app.run()
# 打开flask的调试模式,避免每次改动都要重新启动服务
# app.run(debug=True)

# 这里需要注意,开启调试模式后,ip地址只能为127.0.0.1或localhost访问,无法通过外网或者局域网访问
# host可以设置为本地ip地址,也可以设置为 0.0.0.0 接受外网的访问
# app.run(host= '0.0.0.0',debug=True)

# port可以指定端口
app.run(host= '0.0.0.0', debug=True, port=5000)

 

需要注意:

函数路由设置为@app.route('/hello/'),意味着如果访问http://127.0.0.1:5000/hello网页会重定向为http://127.0.0.1:5000/hello/,即flask通过这种方式可以同时兼容http://127.0.0.1:5000/hello和http://127.0.0.1:5000/hello/

 

 

简单实战:通过flask接口返回json对象

from flask import Flask, make_response, jsonify
from datetime import datetime

# 实例化flask对象
app = Flask(__name__)

# 第一种通过接口返回json对象的方法
@app.route('/hello2/')
def hello2():
    # headers = {
    # 'Content-Type': 'text/html',
    # }
    headers = {
        'Content-Type': 'application/json',
    }

    response = {
        'status': 'success',
        'message': 'Data received',
        'data': {
            'content': 'Hello World2!',
            'monitortime': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        }
    }

    result = make_response(jsonify(response), 200)
    result.headers = headers
    return result

# 第二种通过接口返回json对象的方法(推荐)
@app.route('/hello3/')
def hello3():
    # headers = {
    # 'Content-Type': 'text/html',
    # }
    headers = {
        'Content-Type': 'application/json',
    }

    response = {
        'status': 'success',
        'message': 'Data received',
        'data': {
            'content': 'Hello World3!',
            'monitortime': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        }
    }

    return jsonify(response), 200, headers


# 生产环境 通常使用nginx + uwsgi 部署
# 因此在生产环境下,fisher项目文件不再作为入口文件,而是uwsgi的模块文件,只会通过uwsgi启动web服务,而不是flask内置的web服务
if __name__ == '__main__':
    app.run(host= '0.0.0.0', debug=True, port=5000)

 

posted @ 2024-10-08 11:45  马铃薯1  阅读(6)  评论(0编辑  收藏  举报