标签:return out user 结果 value pat server tools 登录
1. 按接口建立常见bin,lib等目录
其中interface编辑:
#sys.path.insert (手动添加)
import flask,time,json
from lib import tools
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 = tools.my_md5(username+time.strftime(‘%Y%m%d%H%M%S‘)) #服务生成响应的session 一会便于给客户端返回。
key = ‘txz_session:%s‘%username #存放session的key
tools.op_redis(key,session_id,600) #写入session到redis
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)#返回结果弄成json
res = flask.make_response(json_res) #构造成返回结果的对象 获取本地回应结果 这个方法才能set cookie
res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。*右键检查application 会有返回的cookie
return res
@server.route(‘/posts‘) #发表文章接口 需要校验是否已经登录
def posts():
cookies = flask.request.cookies #所有的cokies 调用后会自动传入cookie
username = ‘‘ #
session = ‘‘#定义这两个变量是为了,在没有传cookie的时候用的。
for key,value in cookies.items():
if key.startswith(‘txz_session‘): #判断cookie以txz_session开头的话,取到它
username = key
session = value #调用接口的时候用户传过的seesion,从cookie里面取过来的
redis_session = tools.op_redis(username) #从redis里面获取到的的cookie
if redis_session == session: #判断传过来的seeion和redis里面的session一样
title = flask.request.values.get(‘title‘)#获取文章标题
conent = flask.request.values.get(‘content‘)#获取文章内容
article_key =‘article:%s‘%title #key都以article开头
tools.op_redis(article_key,conent) #把文章写入redis
res = {‘msg‘:‘文章发表成功!‘,‘code‘:0}
else:
res = {‘msg‘:‘用户未登录!‘,‘code‘:2009}
return json.dumps(res,ensure_ascii=False)
标签:return out user 结果 value pat server tools 登录
原文地址:https://www.cnblogs.com/cslw5566/p/9038637.html