构造json响应,重定向响应及终止响应,设置及使用cookies

#!/user/bin/env python
# -*-coding:utf-8 -*-
from flask import Flask, request, make_response, json, redirect, abort
import cx_Oracle

# app = Flask(__name__, static_folder='assets')
# app = Flask(__name__, static_folder='/var/assets') # 使用绝对路径
app = Flask(__name__, static_folder='assets', static_url_path='/assets') # 使用关键字参数换别名


@app.route('/', methods=['GET', 'POST'])
def v_index():
# user_name = request.args['user_id'] # get请求
# user_name = request.form['user_id'] # post表格请求
user_id = request.json['user_id'] # post json格式请求
print(type(user_id))

conn = cx_Oracle.connect('czth_sales/123456@127.0.0.1:1521/ORCL')
cur = conn.cursor()
sql = 'select t.user_id from th_user_info t '
cur.execute(sql)
data = cur.fetchall()
l = []
for i in data:
for j in i:
l.append(j)
print(l)
if eval(user_id) in l:
rsp = make_response('%s,你好' % user_id)
rsp.set_cookie('user_id', user_id) # 设置cookies
return rsp

else:
return '用户不存在'


# ---使用cookies---
@app.route('/data')
def data():
user_id = request.cookies['user_id']
return '%s,你好' % user_id


users = ['wapn', 'race8', '斯巴达克斯']


# ---构造JSON响应---
@app.route('/dd')
def dd():
return json.dumps(users), 200, [('Content-Type', 'application/json;charset=utf-8')]


# ---重定向响应---
'''
301 - 请求的网页已被永久移动到新位置
302 - 服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303 - 对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI
305 - 请求者只能使用代理访问请求的网页。
307 - 对于POST请求,表示请求还没有被处理,客户端应该向Location里的URI重新发起POST请求
flask.redirect(location, code=302, Response=None)
'''


# 使用redirect()方法进行重定向,状态码默认为302
@app.route('/page')
def page():
return redirect('/page2', code=301, Response=None)


@app.route('/page2')
def newpage():
return 'new page'


# ---终止响应---abort(code)
@app.route('/user')
def v_user():
if 'token' in request.args:
return 'good'
else:
abort(401)


app.run(debug=False)

posted on 2018-10-01 15:55  WapN  阅读(397)  评论(0编辑  收藏  举报

导航