首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Momoko,Jinja2和“旋风”

Momoko,Jinja2和“旋风”
EN

Stack Overflow用户
提问于 2014-10-05 22:55:27
回答 1查看 559关注 0票数 0

我的代码有一些根本问题。这些是我的龙卷风处理程序,基本身份验证和jinja2作为模板引擎。下面的工作没有莫莫科数据库的部分。

代码语言:javascript
复制
class BaseHandler(tornado.web.RequestHandler):
    @property
    def db(self):
        return self.application.db   
    def get_current_user(self):
        return self.get_secure_cookie("user")

class TemplateHandler(BaseHandler):
    """Request handler for writing HTML templates."""
    def render(self, template_name, **kwargs):
        """Renders a Jinja2 template."""
        kwargs['options'] = options.as_dict()
        template = templates.environment.get_template(template_name)
        html = template.render(kwargs)
        self.write(html)

class AuthLoginHandler(TemplateHandler):
    def get(self):
        try:
            errormessage = self.get_argument("error")
        except:
            errormessage = ""
        self.render("login.html", errormessage = errormessage)

    def check_permission(self, password, username):
        if username == "admin" and password == "admin":
            return True
        return False

    def post(self):
        username = self.get_argument("username", "")
        password = self.get_argument("password", "")
        auth = self.check_permission(password, username)
        if auth:
            self.set_current_user(username)
            self.redirect(self.get_argument("next", u"/"))
        else:
            error_msg = u"?error=" + tornado.escape.url_escape("Login incorrect")
            self.redirect(u"/auth/login/" + error_msg)

    def set_current_user(self, user):
        if user:
            self.set_secure_cookie("user", tornado.escape.json_encode(user))
        else:
            self.clear_cookie("user")

class AuthLogoutHandler(TemplateHandler):
    def get(self):
       self.clear_cookie("user")
       self.redirect(self.get_argument("next", "/"))


class MainHandler(TemplateHandler):
    @gen.engine
    def get(self):
        username = tornado.escape.xhtml_escape(self.current_user)
        try:
            cursor = yield momoko.Op(self.db.execute, 'SELECT * FROM products;')
        except Exception as error:
            self.write(str(error))
        res = 'Query results: '+''.join(str(cursor.fetchall()))
        self.render("index.html", username = username, cip = self.request.remote_ip, res = res)

对于登录的客户端,此代码应执行基本查询,然后将结果打印到jinja模板中定义的位置( {{ res }} )。当我试图启动服务器时,我得到以下信息:

第22行,在呈现kwargs的选项中= options.as_dict() AttributeError:‘模块’对象没有属性'as_dict‘

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 23:10:20

我们需要看到您的“导入”语句,才能确切地知道出了什么问题。我怀疑你有:

代码语言:javascript
复制
from tornado import options

但你需要:

代码语言:javascript
复制
from tornado.options import options
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26208071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档