使用Python为Google App Engine生成CRUD网页的最快方法是什么?

6 投票
5 回答
3253 浏览
提问于 2025-04-16 22:09

我用Python为我的数据库创建了一些模型。现在我想快速手动给它们添加一些数据。如果这是一个.NET应用程序,我会使用Visual Studio里的一些很方便的控件,快速连接到数据库,然后把一个表格绑定到它上面。接着就可以开始添加数据了。

在Python中,使用Google App Engine,有什么类似的方法可以做到这一点呢?

在ASP.NET MVC中,他们有一种新的“脚手架”功能(是Entity Framework的一部分),可以为你生成CRUD页面。那在GAE中,如果我有一堆模型对象,有没有类似的东西呢?

顺便说一下,使用方便的命令行选项--use_sqlite和--datastore_path,我可以在开发环境中快速备份我的数据库,一旦我完成这个操作。

5 个回答

1

我还是个Python和GAE的新手,不过这几个月来我一直在用它,所以你可能会发现这个方法有效:

你可以使用 Model.properties() 来获取你所关注的模型的属性列表,然后把它保存到一个列表里。接着,你可以把这个列表放到上下文字典中,以便在你的模板中使用。在模板里,你可以循环这个列表,生成一系列输入框,输入框的名字和每个属性相对应。

{% for tItem in list %}
    <input type="text" name="{{ tItem }}" />
{% endfor %}

然后你可以把数据提交回同一个页面,这时你可以使用 Request.arguments() 来把你的对象属性和模型配对,以便保存到数据存储中。

据我所知,除了这个方法,似乎没有比这更优雅的解决方案了,至少没有和你提到的ASP.NET MVC框架相提并论的。

(免责声明:我其实还没有试过这个,所以可能会有一两个问题需要解决。)

2

你可以看看这个appengine admin项目。

Appengine Admin 是一个简单的Python包,你可以用它为你的Google Appengine应用创建一个自动的管理界面。

这里有一张截图:

enter image description here

还有这个快速入门教程

在你创建好模型后,只需添加这一行代码:

# Register to admin site
appengine_admin.register(..your list of class Models definition)

然后定义好管理界面的路由:

(r'^(/admin)(.*)$', appengine_admin.Admin)

这样你就可以访问自定义的管理界面,它提供以下功能:

  • 列出每个注册模型的记录
  • 创建新记录
  • 更新/编辑记录
  • 删除记录
3

如果你在谷歌的应用引擎上使用Django,那么你可以使用Django管理网站

那么Django是怎么处理这些无聊又重复的任务的呢?它帮你全部搞定——只需要几行代码。使用Django,创建一个管理界面已经不是问题了。

它会自动生成用于管理模型的CRUD(创建、读取、更新、删除)HTML表单。

撰写回答