栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于Flask的API开发

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Flask的API开发

基本步骤
1导入flask框架

from flask import Flask
from werkzeug.utils import redirect
from flask import request, jsonify, session
import pymongo

redirect :重定向的时候使用

request:request.get_json()在post的请求的时候获取json格式的数据
可能有的新手不知道什么是post请求。举个例子,我们在登录QQ,微信的时候需要填入账号密码,点击登录的时候其实就是在向后端发送post请求,这个request.get_json()方法就是让我们后端的人员获取用户发来的账号密码,然后我们在通过与数据库验证。这种就交post请求。

session:session[‘xx’]=‘xxx’ 它是一个字典,相当于加强版的cookie

jsonify:以json的格式返回给调用者

2创建APP对象

app = Flask(name) # 创建一个app对象
app.secret_key = b’jdojiedjcij’ # 使用session就必须设置密钥

密钥是随意设置的,对session会话加密用的。

3.初始化要用到的数据库

class mongo():
def init(self):
self.client = pymongo.MongoClient() # 连接数据库,python连接mongo时要现在CMD中打开mongo服务
self.db = self.client[‘test’] # 连接Mongo的test数据库,作者使用的是本地的mongoDB 数据库

检查数据是否入库
def select_data(self, name, password):
    # 使用的user这个文档
    n_dic = self.db.user.find_one({"name": name}, {"_id": 0})
    print(n_dic)
    if n_dic is not None:
        if n_dic["password"] != password:
            return 10
        else:
            return 11
    else:
        return 00

mg = mongo() # 创建对象

4.写API接口

@app.route(‘/’) # 使用app对象对函数进行路由,<变量名>
def tt(str):
return f’你好{str}’

@app.route(‘/my/int:munber’) # <数据类型:变量名>
def cet(munber):
return f’这是数字{munber}’

@app.route(‘/hello’) # 装饰器装饰路由,这里表示根目录
def my_first_API():
return ‘yes my first api i love’

@app.route(‘/my/tec’) # 装饰器装饰路由,这里表示根目录
def my_first():
return ‘yes my first api’

重定向

@app.route(‘/to/bd’)
def change():
return redirect(‘https://www.baidu.com’)

post 请求

@app.route(‘/test/my/first_post’,methods=[‘post’])
def my_first_post():
my_jaso = request.get_json() # 接受Jason数据
print(my_jaso)
name = my_jaso[‘name’] # 获取数据包里面的name的值
return jsonify(msg=name)
# return jsoniyf(msg=‘xxx’) # 返回Json的格式{“msg”:“xxx”}

登录

@app.route(‘/first/login’,methods=[‘post’])
def login():
key_value = request.get_json()
user_name = key_value[‘name’]
password = key_value[‘password’]

# 检查参数是否完整
if not all([user_name, password]):
    return jsonify(msg="参数不完整")

else:
    code_p = mg.select_data(user_name, password)
    if code_p == 00:
        return jsonify(msg="账号不存在")
    elif code_p == 10:
        return jsonify(msg="密码不正确")
    else:
        # 保存账号到session里面,相当于升级版的cookie
        session['name'] = user_name
        # session['password'] = password
        return jsonify(msg="登录成功")
检查session会话

@app.route(‘/sesson’,methods=[‘GET’])
def check_sesson():
if len(session) != 0:
name = session[‘name’]
if name is not None:
return jsonify(msg=name)
else:
return jsonify(msg=‘请先登录!’)
else:
return jsonify(msg=‘请先登录!’)

退出登录

@app.route(‘/first/logout’)
def log_out():
session.clear()
return jsonify(msg=‘退出成功’)

5.运行刚刚设置好的路由

主机号设置为0.0.0.0表示允许所有主机访问

app.run(host=“0.0.0.0”)

总结

  1. 导入flask框架
  2. 创建APP对象
  3. 初始化要用到的数据库
  4. 写API接口
  5. 运行刚刚设置好的路由
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004927.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号