欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python利用flask框架开发接口,提供外部调用

程序员文章站 2024-01-19 09:44:28
1.flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务。本文就用flask来开发一个接口。flask需要先安装再引用。pip install flask2.写了三个文件1.json_test.py内容,该接口可直接访问,访问http://127.0.0.1:8888/index,可直接展示res返回内容import jsonimport flaskfrom flask import Flaskserver = Flask(__name__)...

1.flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务。本文就用flask来开发一个接口。

flask需要先安装再引用。pip install flask

2.写了三个文件,特别注意:文件名命名不能和引用的重名

python利用flask框架开发接口,提供外部调用

1.json_test.py内容,该接口可直接访问,访问http://127.0.0.1:8888/index,可直接展示res返回内容

import json
import flask
from flask import Flask
server = Flask(__name__)           # 实例化server,把当前这个python文件当作一个服务,__name__代表当前这个python文件
@server.route('/index',methods=['get'])  # 'index'是接口路径,如methods不写,则默认get请求
# 装饰器,下面的函数变为一个接口
def index():
    res = {'msg':'这是我开发的第一个接口','msg_code':'0000'}
    return json.dumps(res,ensure_ascii=False)
    # json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False

server.run(port=8888,debug=True,host='0.0.0.0')  # 启动服务;端口不写默认是5000,也可以自定义,但注意不要与机器上已占用的port起冲突,
# debug=True,改了代码后,不用重启,它会自动加载重启
# 'host='0.0.0.0'同一局域网下,别人可以通过IP访问
# 最终这个接口的访问地址就是  http://127.0.0.1/index  ,get方法。返回数据是json格式res内容

python利用flask框架开发接口,提供外部调用

2.flask_test.py内容,该接口调用tools.py工具类,访问数据库实现数据查询匹配,并且根据查询内容返回结果

import flask
import tools #自己写的py,里面写了一些下面需要调用的函数
import json
server = flask.Flask(__name__)
#新建一个服务,把当前这个python文件当做一个服务

#开发一个登录接口
@server.route('/login',methods=['get'])
def login():
    uname = flask.request.values.get('username')
    pd = flask.request.values.get('passwd')
    sql = 'select * from sys_user where name="%s"'%uname
    res = tools.my_db(sql) #tools里的函数:连接数据库,执行sql并返回结果
    if res:
        if tools.my_md5(pd) == res.get('passwd'): #tools里的函数,加密密码
            res = {"code":0,"msg":"登录成功!"}
        else:
            res = {"code":1,"msg":"密码错误!"}
    else:
        res = {'code':2,"msg":"用户不存在"}
    return json.dumps(res,ensure_ascii=False,indent=4) #输出json格式

server.run(host='127.0.0.1',port=8998,debug=True)#若别人访问这个接口,则host需要输入自己的ip地址,而不是127.0.0.1

#以上接口访问地址即:http://127.0.0.1:8998/login?username=usertest&passwd=123123

3.tools.py内容

import pymysql  #连接数据库,执行sql并返回sql执行结果
def my_db(sql):
    conn = pymysql.connect(host='106.13.37.72',user='root',password='*****',
                    db='dca',port=3306,charset='utf8',autocommit=True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    cur.execute(sql)
    res = cur.fetchone() #{'username':'test'}  {}
    cur.close()
    conn.close()
    return res

import hashlib
def my_md5(s,salt=''): #md5加密
    s = s+salt
    news = str(s).encode()
    m = hashlib.md5(news)
    return m.hexdigest()

if __name__ == '__main__':
    #判断如果是在别的文件里面导入这个python文件的话,就不执行下面的代码
    print(strTotimestamp())
    print(clean_log('.'))
    print(clean_log('.',2))

4.正确访问数据库展示的内容

python利用flask框架开发接口,提供外部调用

本文地址:https://blog.csdn.net/qq_19897551/article/details/108266984

相关标签: python flask接口