1 flask 基础

1 模块安装

pip install flask

 

2 项目结构

3 服务端基础

  • 实例化一个 web 服务对象
  • 新建服务端函数
  • 设置函数路由和返回值
  • 编写服务 run 方法

from flask import Flask, render_template
from flask import request
import json

# 实例化一个 web 服务对象
app = Flask(__name__)

# 创建一个方法来处理请求,返回字符串
@app.route(methods=['GET'], rule='/')     # 路由
def hello_str():
    return '<h1>hello flask</h1>'


# 创建一个方法来处理请求,返回 html
# 服务的
xxx.py文件,和templates需要在同一级别
@app.route(methods=['GET'], rule='/index')     # 路由
def hello_index():
    return render_template('index.html')

# 创建一个方法来处理请求,返回 json
@app.route(methods=['GET'], rule='/data')     # 路由
def hello_json():
    data = {
        'code': 1,
        'data': [],
        'msg': '请求成功!'
    }
    return json.dumps(data)


# 构造一个 post 响应方法,返回字符串
@app.route(methods=['POST'], rule='/post')
def post_fun():
    # 处理请求参数
    req_data = request.form
    username = req_data['username']
    password = req_data['password']
    data = {
        'code': 1,
        'data': [{"username":username, "password":password}],
        'msg': '请求成功!'
    }
    return json.dumps(data)


# 构造一个 post 响应方法, 响应 json 请求
@app.route(methods=['POST'], rule='/post/json')
def post_json_fun():
    # 处理请求参数
    req_json_data = json.loads(request.get_data())
    username = req_json_data['username']
    password = req_json_data['password']
    data = {
        'code': 1,
        'data': [{"username":username, "password":password}],
        'msg': '请求成功!'
    }
    return json.dumps(data)


if __name__ == '__main__':
    # 运行服务,并指定 ip 和 端口号。右键运行即可
    app.run(host='127.0.0.1', port='9090')

4 客户端基础

  • 发送不同的请求,得到不同的响应

import requests

# 使用seesion登录,这样的好处是可以在接下来的访问中可以保留登录信息
session = requests.session()
url = 'http://127.0.0.1:9090'

# 发送 get 请求
result = session.get(url=url)
print(result.text)
print('--------------------')


# 发送 get 请求
result = session.get(url=url+'/index')
print(result.text)
print('--------------------')


# 发送 get 请求
result = session.get(url=url+'/data')
print(result.json())
print('--------------------')


# 发送 post 请求, body 为 form
data = {
        'username': 'lizi_form',
        'password': '123456'
    }
result = session.post(url=url + '/post', data=data)
print(result.text)

# 发送 post 请求, body 为 json
data = {
        'username': 'lizi_json',
        'password': '123456'
    }
result = session.post(url=url + '/post/json', json=data)
print(result.text)

 5 index.html demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    用户名: <input type="text" name="username" />
    密码: <input type="text" name="password" />
    登录:<input type="submit" value="Submit" />
</body>
</html>

6 运行server,运行test,查看结果

<h1>hello flask</h1>
--------------------
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    用户名: <input type="text" name="username" />
    密码: <input type="text" name="password" />
    登录:<input type="submit" value="Submit" />
</body>
</html>
--------------------
{'code': 1, 'data': [], 'msg': '请求成功!'}
--------------------
{'code': 1, 'data': [{'username': 'lizi_form', 'password': '123456'}], 'msg': '请求成功!'}
--------------------
{'code': 1, 'data': [{'username': 'lizi_json', 'password': '123456'}], 'msg': '请求成功!'}

 

posted @ 2021-01-18 21:50  栗子测试开发  阅读(103)  评论(0)    收藏  举报