当前位置: 移动技术网 > IT编程>脚本编程>Python > python利用flask框架开发接口,提供外部调用

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

2020年08月01日  | 移动技术网IT编程  | 我要评论
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.写了三个文件,特别注意:文件名命名不能和引用的重名

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内容

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.正确访问数据库展示的内容

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网