• web.py+gae=我的第一个留言板【二】


    下面接着说说google application engine和webpy配套的问题。在我完成留言板的时候,这方面的资料还是很少,中文资料更少,希望webpy社区能够壮大啊。

    gae据说很有Django的风格,也是内置Django的,而web.py则需要自备。因此,在应用目录中应该放入web.py解压后得到的web目录。否则会导致Import error: no module named web

    详细的发布过程,可以参考chinaunix的这篇文章:http://bbs.chinaunix.net/viewthread.php?tid=1487470 [笔记]Google App Engine上试用web.py 

    由于gae的限制,应用的模板文件需要编译后才能在gae上执行读取,否则会导致No module named templates 。上面的文章有具体的解决办法。

     注意,源代码的app.run()需要改成main=app.cgirun()才能正常工作。 否则会导致ImportError: No module named flup.server.fcgi

     另外,我在Ubuntu下多次上传都失败了,提示Import error: no module named web,无奈之下转到win中就成功上传了,不确定是图形界面的google app engine launcher比较厉害还是python sdk的appserver有问题。

    gae上面只能使用google的数据库,使用称为gql的查询语言。

    要定义一个表: 

    from google.appengine.ext import db 

     class data(db.Model):

    content=db.StringProperty(multiline=True)

    date=db.DataTimeProperty(auto_now_add=True)

    title=db.StringProperty(multiline=False)

    myKey=db.StringProperty(multiline=False)

     为了索引记录,我用了一个笨方法,在记录中增加一个myKey字段来记录每个记录的Key值。Key是google用来定位每一条记录的内置属性。通过str函数,可以从key得到唯一的字串。

      

     查询一条记录:

    db.get(db.Key(myKey))

    批量查询:

    db.GqlQuery("SELECT * FROM data ORDER BY date DESC") 

     插入记录:

    record=data()

    #设置record的相关属性

    record.put() 

    删除记录:

    q=db.get(db.Key(myKey))

    db.delete(q)

     更多关于gae的数据库信息,可以参考gae的官方文档(有中文版)。

    与python自带的web server不同,在gae中print语句也是直接输出到浏览器而不是服务器的日志中。 像是一个典型的cgi应用。

    比较有参考价值的文章:http://hi.baidu.com/xusx/blog/item/801704fa5d84259258ee90dd.html 手把手教程,没读完

                http://baiduer.net/2010/03/05/使用webpy创建一个blog/   另一个手把手。。。

    最后推荐几个用python写的blog:   http://maoxingxu.appspot.com 这个是国内的技术人写的。

    http://www.k4ml.com/archive/old/page165.html 这个风格很简洁。。。

    http://webpy.appspot.com   这个非常值得参考,似乎就是webpy的人写出来的。

    http://micolog.appspot.com/zh-cn 目前比较通用的blog,可以直接使用。 

                       

    我的留言本源代码:/Files/Lifehacker/myApp.7z 

    ps:appspot需要FQ访问 

     

     

  • 相关阅读:
    关于影像颜色替换
    DevExpress TreeList控件的复选框
    深刻理解Vue中的组件
    【Vue】组件的基础与组件间通信
    vue语法糖
    vue中prop传值时加不加v-bind(冒号:)
    Vue从入门到实战
    vue-router实现原理
    Vue学习笔记——Vue-router
    Vue-router 学习笔记
  • 原文地址:https://www.cnblogs.com/Lifehacker/p/webpy_with_gae.html
Copyright © 2020-2023  润新知