<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Day 14 - 完成Web App 在Web App框架和基本流程跑通后,剩下的工作全部是體力活了:在Debug開發模式下完成后端所有API、前端所有頁面。我們需要做的事情包括: 把當前用戶綁定到`request`上,并對URL`/manage/`進行攔截,檢查當前用戶是否是管理員身份: ``` @asyncio.coroutine def auth_factory(app, handler): @asyncio.coroutine def auth(request): logging.info('check user: %s %s' % (request.method, request.path)) request.__user__ = None cookie_str = request.cookies.get(COOKIE_NAME) if cookie_str: user = yield from cookie2user(cookie_str) if user: logging.info('set current user: %s' % user.email) request.__user__ = user if request.path.startswith('/manage/') and (request.__user__ is None or not request.__user__.admin): return web.HTTPFound('/signin') return (yield from handler(request)) return auth ``` 后端API包括: * 獲取日志:GET /api/blogs * 創建日志:POST /api/blogs * 修改日志:POST /api/blogs/:blog_id * 刪除日志:POST /api/blogs/:blog_id/delete * 獲取評論:GET /api/comments * 創建評論:POST /api/blogs/:blog_id/comments * 刪除評論:POST /api/comments/:comment_id/delete * 創建新用戶:POST /api/users * 獲取用戶:GET /api/users 管理頁面包括: * 評論列表頁:GET /manage/comments * 日志列表頁:GET /manage/blogs * 創建日志頁:GET /manage/blogs/create * 修改日志頁:GET /manage/blogs/ * 用戶列表頁:GET /manage/users 用戶瀏覽頁面包括: * 注冊頁:GET /register * 登錄頁:GET /signin * 注銷頁:GET /signout * 首頁:GET / * 日志詳情頁:GET /blog/:blog_id 把所有的功能實現,我們第一個Web App就宣告完成! ## 參考源碼 [day-14](https://github.com/michaelliao/awesome-python3-webapp/tree/day-14)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看