0

这个学期我参加了网络应用课程,我想使用谷歌应用引擎来实现我的课程项目,但我想知道GAE是否可以满足这个项目的要求。本课程项目是一个作业提交系统,用户(学生)可以将作业上传到服务器,教师可以在线查看作业。

假设学生上传的作业是一些 html 和 css 的东西。让我困惑的是如何实现教师在线查看功能?例如:

学生 A 上传了一个 html 文件 hello.html,老师想用 http://xxx.xx/xx/xx/hello.html 来检查这个作业。

GAE能满足这个要求吗?据我所知,GAE使用app.yaml指向不同的文件或html,但是当学生上传作业时,他们不能更改app.yaml,对吧?

我被困在这里。请帮我。谢谢!

4

2 回答 2

4

是的,您可以使用 GAE 来创建此应用程序,但您必须摆脱上传和提供 HTML 文件的想法,就好像它直接存在于文件系统上一样。你不能那样做。

您可以做的——相对容易——将提交的一个或多个文件存储为数据存储对象,并提供一个 URL,该 URL 将所需的文件名作为参数并将其从数据存储中提供出来。

您可以将提交的文件存储在这样的模型中:

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()

content字段被声明为TextProperty假设您正在处理 HTML 和 CSS 文件,但如果您要处理二进制数据,您会想要使用BlobProperty.

您需要有两个 URL 来处理资产的上传和下载。您可以使用 Web 框架或编写一些代码来处理参数化 URL,允许您将文件名等内容编码到 URL 本身,如下所示:

http://homeworkapp.edu/review/hello.html

然后处理 /review/* URL 的方法将从数据存储中检索数据并将其作为回复发送回。

于 2012-04-30T13:31:18.140 回答
0

GAE 可以满足您的要求,但您需要将每个“hello.html”文件保存在 Blobstore 或 Datastore 中,并构建一些系统来检索和提供上传的文件。请参阅此问答以获取更多参考

于 2012-04-30T13:29:31.287 回答