zoukankan      html  css  js  c++  java
  • day6-Python学习笔记(十四)接口开发

    import flask,json
    from tools123 import op_mysql #op_mysql()
    #import tools # tools123.op_mysql 这种方式也可以调用函数
    # 接口,后台服务
    server = flask.Flask(__name__) #把咱们这个app这个python文件当做一个server
    @server.route('/get_user',methods=['get','post'])#server.route()是装饰器,直接变成接口
    def get_all_user():
    sql = 'select * from bt_stu;'
    res = op_mysql(
    host='211.149.218.16',
    user='jxz', password='123456', # port这里一定要写int类型
    port=3306, db='jxz', charset='utf8', sql=sql)
    response = json.dumps(res,ensure_ascii=False) #把list转成json
    return response #return 的时候只能return字符串

    @server.route('/add_user',methods=['post'])
    def add_user():
    user_id = flask.request.values.get('id') #这里的参数就是调用接口的时候传入的参数
    username = flask.request.values.get('u') #
    if user_id and username:
    sql = "insert into stu values ('%s','%s');"%(user_id,username)
    res = op_mysql(
    host='211.149.218.16',
    user='jxz', password='123456', # port这里一定要写int类型
    port=3306, db='jxz', charset='utf8', sql=sql)
    response = {'code':308,'msg':'添加成功'}
    else:
    response = {'code':503,'msg':'必填参数未填!'}
    return json.dumps(response,ensure_ascii=False)


    server.run(port=8080,debug=True)

    bin/start.py
    import sys,os
    BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0,BASE_PATH)
    # print(sys.path)
    # print(__file__)
    from lib.main import server

    server.run(port=8080,host='0.0.0.0',debug=True)

    conf/setting.py
    MYSQL_HOST = '211.149.218.16'
    PASSWORD ='123456'
    PORT=3306
    USER ='jxz'
    DB ='jxz'

    lib/main.py
    import flask,json
    from lib.tools import op_mysql
    server =flask.Flask(__name__)#把咱们这个app这个py文件当做一个server

    @server.route('/get_user',methods =['get','post'])
    def get_all_user():
    sql = 'select * from my_user;'
    res = op_mysql(sql=sql)
    response = json.dumps(res,ensure_ascii=False)
    return response

    @server.route('/add_user',methods = ['post'])
    def add_user():
    user_id = flask.request.values.get('id')
    user_name = flask.request.values.get('u')
    sql = "insert into stu values ('%s','%s');" % (user_id, user_name)
    res = op_mysql(sql=sql)
    response ={'code':308,'msg':'添加成功'}
    return json.dumps(response,ensure_ascii=False)


    @server.route('/pay_api',methods = ['post'])
    def pay_api():
    username =flask.request.values.get('username').strip()
    money =flask.request.values.get('money').strip()
    sql = 'select * from my_user;'
    res = op_mysql(sql=sql)
    response = json.dumps(res, ensure_ascii=False)
    response_d = json.loads(response)
    for i in response_d:
    if username == i.get('username'):
    i2 = float(i.get('money')) - float(money)
    sql1 ="UPDATE my_user SET `username`='%s',`money`='%s' WHERE (`username`='%s');"%(username,i2,username)
    res = op_mysql(sql1)
    response = {'code': 308, 'msg': '%s用户已扣除%s金币'%(username,money)}
    return json.dumps(response, ensure_ascii=False)

    lib/tools.py
    import pymysql,redis
    from conf import setting
    def op_mysql(sql):
    conn = pymysql.connect(host=setting.MYSQL_HOST,user=setting.USER,
    password=setting.PASSWORD,
    port=setting.PORT,
    charset='utf8',db=setting.DB)
    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
    cur.execute(sql)
    sql_start = sql[:6].upper() #取sql前6个字符串,判断它是什么类型的sql语句
    if sql_start=='SELECT' :
    res = cur.fetchall()
    else:
    conn.commit()
    res = 'ok'
    cur.close()
    conn.close()
    return res

    def op_redis(host,password,k,v=None,port=6379,db=0):
    r = redis.Redis(host=host,password=password,port=port,db=db)
    if v:
    r.set(k,v)
    res = 'ok'
    else:
    res = r.get(k)
    if res: #这里是判断有没有get到数据
    res = res.decode()
    else:
    res = None
    return res

    # print(__name__)
    # print('哈哈哈哈,我在这里头')
    # if __name__=='__main__':
    # #别人导入这个python文件的时候,下面的代码不会被执行
    # #自己测试的时候用
    # # print(__name__) # __main__
    # # print('哈哈哈哈哈哈 到底有没有执行')
    # sql = 'select * from bt_stu limit 5;'
    # sql2 = 'update bt_stu set class="天蝎座3" where id=503;'
    # res = op_mysql(
    # host='211.149.218.16',
    # user='jxz',password='123456',#port这里一定要写int类型
    # port=3306,db='jxz',charset='utf8',sql=sql2)
    # print(res)






















  • 相关阅读:
    thinkphp在模型中自动完成session赋值
    highcharts实例教程二:结合php与mysql生成饼图
    程序员应该经常看看的网站
    highcharts实例教程一:结合php与mysql生成折线图
    2015-2-10 ecshop
    一个简单的javascript获取URL参数的代码
    table 西边框样式
    PHP 获取当前日期及格式化
    mysql 获取当前日期及格式化
    mysql时间int日期转换
  • 原文地址:https://www.cnblogs.com/flynn0825/p/8361972.html
Copyright © 2011-2022 走看看