GAE的:Session、服务端请求网页、文字编码、Json、正则表达式
来源:互联网 发布:橙鑫数据 蔡辉耀 编辑:程序博客网 时间:2024/06/14 19:59
# coding=utf-8class LoginBack(webapp.RequestHandler): def post(self): access_token = self.request.get('access_token') openid = self.request.get('openid') url = 'https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s'\ % (access_token, setting.qq_appid, openid) response = urllib2.urlopen(url) s = response.read() # .decode('gb2312').encode('utf8') dic = json.loads(s) if dic['ret'] == 0: user = User() user.nickname = dic['nickname'] user.face = dic['figureurl_2'] user.gender = dic['gender'] self.session = self.request.environ['beaker.session'] self.session['user'] = user self.redirect('/') else: self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(u"登录失败:%s" % dic['msg'])
app = webapp.WSGIApplication([ ('/', MainHandler),], debug=True)session_opts = { 'session.type': 'ext:google', 'session.cookie_expires': True, 'session.auto': True,}app = SessionMiddleware(app, session_opts)if sys.getdefaultencoding() != 'utf-8': reload(sys) sys.setdefaultencoding('utf-8')
<!DOCTYPE html><html><head> <title>提示信息</title></head><body> <div> {% autoescape off %} <p>{{message}}</p> {% endautoescape %} <p> <a href="{{url}}">返回</a> </p> </div></body></html>
pattern = re.compile(r'access\_token\=(\w+)') match = pattern.search(s) if match: access_token = match.group(1)