zoukankan      html  css  js  c++  java
  • Python【关联接口的开发】

    import flask,time,json,hashlib,redis

    print("==============被调函数部分================")
    def my_md5(s):
    md = hashlib.md5()
    md.update( s.encode() )
    return md.hexdigest()

    def op_redis(k,v=None,time=None):
    r = redis.Redis(host='127.0.0.1',password='HK139bc&*',port=6379,db=1)
    if v:
    r.set(k,v,time)
    res = 'ok'
    else:
    res = r.get(k)
    if res:
    res = res.decode()
    return res

    print("===========接口部分==============")
    server = flask.Flask(__name__)
    @server.route('/login',methods=['get'])
    def login():
    username = flask.request.values.get('username')
    pwd = flask.request.values.get('pwd')

    if username == 'nhy' and pwd=='123456':
    #步骤一:构造一个session_id,保存到redis数据库中
    session_id = my_md5(username+time.strftime('%Y%m%d%H%M%S'))
    key = 'txz_session:%s'%username
    op_redis(key,session_id,600)

    #步骤二:构造返回给用户的数据,数据的格式为json格式的字符串
    res = {'session_id':session_id,'error_code':0,'msg':'登录成功',
    'login_time':time.strftime('%Y%m%d%H%M%S') }
    json_res = json.dumps(res,ensure_ascii=False)

    #步骤三:构造响应对象,把cookie放入响应对象中,同时把步骤二的Json格式字符串也放入响应对象中
    res = flask.make_response(json_res)
    res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。
    return res

    @server.route('/posts')
    def posts():

    #定义两个变量
    username = ''
    session = ''

    #步骤一:从请求对象中获取所有的cookie,并进行判断
    cookies = flask.request.cookies
    for key,value in cookies.items():
    if key.startswith('txz_session'):
    username = key
    session = value

    #步骤二:从redis里面获取到的的cookie
    redis_session = op_redis(username)

    #步骤三:#判断传过来的seeion和redis里面的session是否一样,
    #两者一样,说明用户已经登陆了,把文章信息存入redis数据库,两者不一样,则提示用户未登陆
    if redis_session == session:
    title = flask.request.values.get('title') #获取文章标题
    conent = flask.request.values.get('content')#获取文章内容
    article_key ='article:%s'%title #key都以article开头
    op_redis(article_key,conent) #把文章写入redis
    res = {'msg':'文章发表成功!','code':0}
    else:
    res = {'msg':'用户未登录!','code':2009}

    return json.dumps(res,ensure_ascii=False)

    server.run(host='127.0.0.1',port=8989,debug=True)


  • 相关阅读:
    Windows共享上网的做法
    如何花更少的时间学习更多的知识
    因权限引起的svn提交失败的错误及其解决办法
    ArcGIS二次开发入门(一)
    GeoTiff如何存储颜色表的研究
    html5文件夹上传源码
    vue文件夹上传源码
    前端文件夹上传源码
    asp.net文件夹上传源码
    使用webuploader实现大文件上传分片上传
  • 原文地址:https://www.cnblogs.com/mtszw/p/9061522.html
Copyright © 2011-2022 走看看