使用Python为Google App Engine生成CRUD网页的最快方法是什么?
我用Python为我的数据库创建了一些模型。现在我想快速手动给它们添加一些数据。如果这是一个.NET应用程序,我会使用Visual Studio里的一些很方便的控件,快速连接到数据库,然后把一个表格绑定到它上面。接着就可以开始添加数据了。
在Python中,使用Google App Engine,有什么类似的方法可以做到这一点呢?
在ASP.NET MVC中,他们有一种新的“脚手架”功能(是Entity Framework的一部分),可以为你生成CRUD页面。那在GAE中,如果我有一堆模型对象,有没有类似的东西呢?
顺便说一下,使用方便的命令行选项--use_sqlite和--datastore_path,我可以在开发环境中快速备份我的数据库,一旦我完成这个操作。
5 个回答
我还是个Python和GAE的新手,不过这几个月来我一直在用它,所以你可能会发现这个方法有效:
你可以使用 Model.properties() 来获取你所关注的模型的属性列表,然后把它保存到一个列表里。接着,你可以把这个列表放到上下文字典中,以便在你的模板中使用。在模板里,你可以循环这个列表,生成一系列输入框,输入框的名字和每个属性相对应。
{% for tItem in list %}
<input type="text" name="{{ tItem }}" />
{% endfor %}
然后你可以把数据提交回同一个页面,这时你可以使用 Request.arguments() 来把你的对象属性和模型配对,以便保存到数据存储中。
据我所知,除了这个方法,似乎没有比这更优雅的解决方案了,至少没有和你提到的ASP.NET MVC框架相提并论的。
(免责声明:我其实还没有试过这个,所以可能会有一两个问题需要解决。)
你可以看看这个appengine admin项目。
Appengine Admin 是一个简单的Python包,你可以用它为你的Google Appengine应用创建一个自动的管理界面。
这里有一张截图:
还有这个快速入门教程。
在你创建好模型后,只需添加这一行代码:
# Register to admin site
appengine_admin.register(..your list of class Models definition)
然后定义好管理界面的路由:
(r'^(/admin)(.*)$', appengine_admin.Admin)
这样你就可以访问自定义的管理界面,它提供以下功能:
- 列出每个注册模型的记录
- 创建新记录
- 更新/编辑记录
- 删除记录
如果你在谷歌的应用引擎上使用Django,那么你可以使用Django管理网站:
那么Django是怎么处理这些无聊又重复的任务的呢?它帮你全部搞定——只需要几行代码。使用Django,创建一个管理界面已经不是问题了。
它会自动生成用于管理模型的CRUD(创建、读取、更新、删除)HTML表单。