Google app engine 我可以使用谷歌应用引擎来实现这个项目吗?

Google app engine 我可以使用谷歌应用引擎来实现这个项目吗?,google-app-engine,Google App Engine,这学期我选修了网络应用课程,我想用谷歌应用引擎来实现我的课程项目,但我想知道GAE是否能满足这个项目的要求。 本课程项目是一个作业提交系统,允许用户(学生)将作业上传到服务器,教师在线检查作业 假设学生上传的作业是一些html和css内容。让我困惑的是如何实现教师在线考试功能?例如: 学生A上传了一个html文件hello.html,老师想用http://xxx.xx/xx/xx/hello.html检查这个家庭作业 GAE能满足这个要求吗?据我所知,GAE使用app.yaml指向不同的文件或H

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

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

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

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


我被困在这里了。请帮帮我。谢谢大家!

GAE可以满足您的要求,但您需要将每个“hello.html”文件保存在Blobstore或数据存储中,并构建一些系统来检索和服务上载的文件。请参阅。

GAE将满足您的要求,但您需要将每个“hello.html”文件保存在Blobstore或数据存储中,并构建一些系统来检索和服务上载的文件。查看此图。

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

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

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

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()
http://homeworkapp.edu/review/hello.html
content
字段声明为
TextProperty
,假设您处理的是HTML和CSS文件,但如果您要处理二进制数据,则需要使用
BlobProperty

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

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()
http://homeworkapp.edu/review/hello.html

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

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

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

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

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()
http://homeworkapp.edu/review/hello.html
content
字段声明为
TextProperty
,假设您处理的是HTML和CSS文件,但如果您要处理二进制数据,则需要使用
BlobProperty

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

class HomeworkItem(db.Model):
    author = db.UserProperty()
    filename = db.StringProperty()
    content = db.TextProperty(multiline=True)
    submitted_on = db.DateProperty()
http://homeworkapp.edu/review/hello.html

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

Awesome!谢谢你启发我!然后你聪明的学生可以上传带有XSS攻击的家庭作业,窃取老师的证书,然后登录并更改他们的成绩。非常非常小心地将用户生成的内容返回给其他用户,特别是HTML。尼克,这是一个很好的观点。可行性和可取性是完全不同的东西,这个项目的想法有很多与之相反的地方。太棒了!谢谢你启发我!然后你聪明的学生可以上传带有XSS攻击的家庭作业,窃取老师的证书,然后登录并更改他们的成绩。非常非常小心地将用户生成的内容返回给其他用户,特别是HTML。尼克,这是一个很好的观点。可行性和可取性是完全不同的事情,这个项目的想法有很多与之相反的地方。