Python3之Flask框架

1 篇文章 0 订阅

1、入门

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return 'Hello World'
if __name__ == '__main__':
    app.debug = True # 设置调试模式,生产模式的时候要关掉debug
    app.run()

运行,访问localhost:5000

2、模板

Flask的模板功能是基于Jinja2模板引擎实现的

from  flask import  Flask

from  flask import  render_template

app  =  Flask(__name__)

@app.route('/hello')

@app.route('/hello/<name>')

def  hello(name=None):

    return  render_template('hello.html',  name=name)

if  __name__  ==  '__main__':

    app.run(debug=True, host='0.0.0.0', port=7010)

在当前目录下,创建一个子目录”templates”(注意,一定要使用这个名字)。然后在”templates”目录下创建文件”hello.html”

<!doctype html>

<title>Hello Sample</title>

{% if name %}

  <h1>Hello {{ name }}!</h1>

{% else %}

  <h1>Hello World!</h1>

{%  endif  %}

3、API发布

xxx/api/tem?start_day=xxx&end_day=xxx

from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/api/tem', methods=['GET'])
def tem_index():
	request.values.get('start_day'), request.values.get('end_day')

4、gunicorn部署Flask服务

pip install gunicorn
# pip3 install gunicorn
/opt/conda/envs/grib/bin/gunicorn --config=/data/proj-py/cq-grid-decode/wsgi.py webapi:app
err:No module named 'gevent'
# 安装 gevent
pip install gevent

5、获取 GET 请求参数

@app.route('/', methods = ["GET","POST"])
def get_data():
    # http://127.0.0.1:5000/index?name=john&age=20
    #可以通过 request 的 args 属性来获取参数
    name = request.args.get("name", type=str)
    age = request.args.get("age")
    max_lon = request.args.get("maxLon", type=float)

6、获取 POST 请求参数

from flask import request, jsonify

@app.route('/', methods = ["POST"])
def post_data():
    #{"obj": [{"name":"John","age":"20"}] }
    
    # 方法一
    data = request.get_json()                # 获取 JSON 数据
    data = pd.DataFrame(data["obj"])   # 获取参数并转变为 DataFrame 结构
    
    # 方法二
    # data = request.json        # 获取 JOSN 数据
    # data = data.get('obj')     #  以字典形式获取参数

7、info日志输出

import logging

logging.basicConfig(level=logging.INFO)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值