FLASK API 学习之路(一)

1 篇文章 0 订阅
1 篇文章 0 订阅

备忘性质的一篇博客。记录用flask对Python封装成API的学习及问题解决过程。

关于我:纯纯小白,只会用Python封装exe,虽然考过什么全国计算机三级网络技术,但是十年前了,对各种ip网关啥的一窍不通。

  1. 学习参考

Flask 1.1.1 中文文档:https://flask.net.cn/(我也不知道是不是最新的,但是用着还可以)

视频系列:https://www.bilibili.com/video/BV1NA411t7gu/?spm_id_from=333.337.search-card.all.click&vd_source=cb4b3fab2748cf3ac23f57f7766bb09c(B站)

  1. 虚拟环境搭建

软件:pycharm2022、apifox

也不知道怎么用,就跟着教程搭建了一个叫myproject的虚拟环境:

关键程序:

  1. 上手一个最小的应用

主程序:hello.py

from flask import Flask
app = Flask(__name__)

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

运行:

需要跳回到主程序所在目录下:

set FLASK_APP=hello.py
// $env:FLASK_APP = "hello.py"
flask run

有个WARNING,尝试解决没成功,先搁置吧,看看后面有没有影响。

点击网址得到:

其中:FLASK_ENV=development是调试模式,不能用在生产环境中。

  1. 改URL名字!

可以通过改这里:@app.route('/')

from flask import Flask
app = Flask(__name__)

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

@app.route('/name')
def get_name():
    return 'hcy'

@app.route('/fans')
def get_fans():
    return "10000"

结果比如:

注意:

 The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable
  1. 学习POST

from flask import Flask, escape, url_for
from flask import request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    return 'index'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return "hcy from post"
    else:
        return 'hcy from get'
  1. post json结构化数据

@app.route('/test_json', methods=['GET', 'POST'])
def test_json():
    if request.method == 'POST':
        print(request.json)
        return "hcy from post"
    elif request.method == 'GET':
        return dict(name='hcy', do='test')
  1. 从postman获取json,并返回

@app.route('/test_json', methods=['GET', 'POST'])
def test_json():
    if request.method == 'POST':
        print(request.json)
        print(request.form)
        print(request.data)
        name = request.json.get('name')
        if name == 'hcy':
            return {'my name':'hcy', 'judge':'yes'}
        return "hcy from post"
    elif request.method == 'GET':
        return dict(name='hcy', do='test')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值