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)