• 使用python2和flask开发一个http接口的方法


     
    代码Demo
     1 import flask
     2  from flask import request
     3  from flask import jsonify
     4  import tools
     5  import OP_db
     6  import settings
     7  '''
     8  flask: web框架,可以通过flask提供的装饰器@server.route()将普通函数转换为服务
     9  登录接口,需要传url、username、passwd
    10  '''
    11  #创建一个服务,把当前这个python文件当做一个服务
    12  server = flask.Flask(__name__)
    13  #server.config['JSON_AS_ASCII'] = False
    14  
    15  # @server.route()可以将普通函数转变为服务 登录接口的路径、请求方式
    16  @server.route('/login', methods=['get'])
    17  def login():
    18   # 获取通过url请求传参的数据
    19   username = request.values.get('name')
    20   # 获取url请求传的密码,明文
    21   pwd = request.values.get('pwd')
    22   # 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
    23   if username and pwd:
    24    # 获取加密后的密码
    25    password = tools.md5_pwd(pwd)
    26    #执行sql,如果查询的username和password不为空,说明数据库存在admin的账号
    27    sql = 'select name,password from test where name= "%s" and password= "%s";' %(username, password)
    28    # 从数据查询结果后,res返回是元组
    29    res = OP_db.getconn(
    30     host=settings.mysql_info['host'],
    31     user=settings.mysql_info['user'],
    32     passwd=settings.mysql_info['pwd'],
    33     db=settings.mysql_info['db'],
    34     port=settings.mysql_info['port'],
    35     sql=sql
    36    )
    37    if res:  #res的结果不为空,说明找到了username=admin的用户,且password为加密前的123456
    38     resu = {'code': 200, 'message': '登录成功'}
    39     return jsonify(resu) #将字典转换为json串, json是字符串
    40    else:
    41     resu = {'code': -1, 'message': '账号/密码错误'}
    42     return jsonify(resu)
    43   else:
    44    res = {'code': 999, 'message': '必填参数未填写'}
    45    return jsonify(res)
    46  
    47  if __name__ == '__main__':
    48   server.run(debug=True, port=8888, host=0.0.0.0) #指定端口、host,0.0.0.0代表不管几个网卡,任何ip都可以访问

    WARNING: This is a development server. Do not use it in a production deployment. falsk WSGI

    记录一下这个问题,
       Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
    其实就是flask未使用 WSGI 启动,所以使用wsgi启动就行了,我找到两种方式,但不知道怎么比较好坏,但以我的理解,底层都是wsgi,只是封装库不同而已。。。
    from gevent import pywsgi
     
    if __name__ == '__main__':
        server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
        server.serve_forever()
     
     
  • 相关阅读:
    Spring加载机制
    SpringMVC 请求过程
    Spring事务传播机制
    数组扩容
    hashmap 底层原和扩容机制
    spring源码
    金字塔表达方式(三)如何使得一个事情变得清晰有逻辑
    金字塔表达方式(二)如何判断事情的逻辑是否正确
    C#设计模式(3)——单例模式(Singleton)
    C#设计模式(2)——工厂模式
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/13646271.html
Copyright © 2020-2023  润新知