【问题标题】:Error in using python web.py framework使用 python web.py 框架时出错
【发布时间】:2012-10-08 14:55:53
【问题描述】:

我正在研究 python,我想开发一些由 3 个页面(表单)组成的简单 Web 应用程序

  1. login screen 应该验证用户名和密码并重定向到第二页

  2. 如果用户显示它会重定向到该页面,该页面由记录列表和add button 组成以添加另一条记录

  3. 当点击第二页中的add record 时,应重定向到该页面,该页面由一个简单的表单字段组成,当点击submit 按钮时,该表单字段获取数据并保存到第二页作为列表中的记录

我不想使用像 django 这样的高级框架来满足上述小要求,所以在谷歌搜索很多之后决定使用以下框架之一

Wheezy.web (https://bitbucket.org/akorn/wheezy.web/downloads)

web.py (http://webpy.org/)

瓶子 (http://bottlepy.org/docs/dev/)

烧瓶 (http://flask.pocoo.org/)

我开始使用web.py 框架并创建了一个code.py 文件,如下面的教程所示

code.py

import web
render = web.template.render('templates/')

urls = ( '/', 'index' )

if __name__ == "__main__": 
    app = web.application(urls, globals())
    app.run()  

使用python code.py 运行上述文件后,结果为

sh-4.2$ python code.py 
http://0.0.0.0:8080/

我已经改变了IP和端口如下

python code.py 192.168.1.112:2030

并尝试通过浏览器访问,然后我收到以下错误

<type 'exceptions.KeyError'> at /
u'index'
Python  /usr/lib/python2.7/site-packages/web/application.py in _delegate, line 418
Web     GET http://0.0.0.0:8080/
Traceback (innermost first)

    /usr/lib/python2.7/site-packages/web/application.py in _delegate
        cls = fvars[f] ...
    ▶ Local vars
    /usr/lib/python2.7/site-packages/web/application.py in handle
        return self._delegate(fn, self.fvars, args) ...
    ▶ Local vars
    /usr/lib/python2.7/site-packages/web/application.py in process
        return self.handle() ...
    ▶ Local vars

Request information
INPUT No data.
COOKIES No data.
...............

实际上,当我在地址栏中输入 url 时,应该会出现一个 hello world 消息,如教程中所示,但我收到了上述错误。

  1. 谁能建议如何在不使用 django 框架和 python 中的 cgi 的情况下实现上述在 python 中开发登录屏幕的要求
  2. 我无法找到如何使用这些框架进行开发,因为例如 Wheezy.web ( https://bitbucket.org/akorn/wheezy.web/downloads) 框架,但没有说明如何创建文件并开始开发的文档

请在上述情况下帮助我

【问题讨论】:

    标签: python login web.py


    【解决方案1】:

    行:

    urls = ( '/', 'index' )
    

    告诉 web.py url / 应该由一个类 index 处理。你还没有创建这样的类,因此你得到了错误。像这样修复它:

    import web
    
    urls = (
        '/', 'index'
    )
    
    class index:
        def GET(self):
            return "Hello, world!"
    
    if __name__ == "__main__":
        app = web.application(urls, globals())
        app.run()
    

    【讨论】:

    • 哇非常感谢 Rob,我很抱歉这是我忘记的基本内容,现在我的全部目的是创建一个登录屏幕 html 模板,该模板显示三个字段,如用户名、密码和登录按钮。使用数据库检查后,它应该重定向到下一页。如果你不介意你可以请我在如何以及在哪里创建 html 模板并在上面的代码中使用它的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多