我应该使用 Python 还是 Javascript 来使用 Django 构建基于文本的冒险?
Should I use Python or Javascript to build a text-based adventure using Django?
我希望这个问题不会太奇怪,但我对 Django 还比较陌生。我目前有一个使用 Heroku 和 Django 的网站,我想 post 一堆我在那里制作的小型项目。我想做的其中一个是基于文本的冒险。我相对精通 Python 和 Javascript,并且在这两个方面都构建了类似的东西,但是我无法思考如何最好地将其转换为 Django 框架。
目前在我的网站上,我有一堆页面只是为了文章和文章之类的东西。所有这些都工作正常,我什至在后端添加了一个迷你 CMS,一切正常。然而,其中大部分要么完全在后端构建东西,要么完全在前端构建东西,然后只是进行数据链接。除了构建视图和模型等之外,后端没有真正的 python 代码在进行。如果我要在 Javascript 中构建它,我可能只会对基于文本的大量写作进行硬编码游戏,与 Python 一样,但是我觉得 Django 和链接的 Postgres DB 有可能使它更具动态性和使用它的硬编码更少,但我不太清楚哪个是最好的。
基于此我的问题是:我是否应该完全在 javascript 中构建游戏,它只是提供给网页,然后使用 POST 请求和数据 table,或者有没有办法创建一个 python 脚本,它可以更有效地与网页集成。我想问题实际上更多的是在前端或后端构建游戏更好,因为我看不到一种特别有效的方法来将它划分为两者?
你要问问自己游戏需要从后端(Django 和 Postgres)得到什么数据?明确并具体说明游戏前端需要哪些数据以及何时需要这些数据 (Javascript)?
话虽如此,解决这个问题的一种方法是用纯前端编写游戏,用 javascript 编写会更干净。它应该专注于游戏逻辑和游戏玩法。
播种初始游戏数据
如果您非常清楚在初始加载期间游戏需要什么(即前端),那么您可以考虑在初始页面加载期间提供所有这些数据。 (更多详情:)
后续数据
在初始加载后无法确定的来自后端的其他数据将必须通过 XMLHttpRequest 请求到单独的 Django 视图,其中 returns 仅数据(在 JSON/XML/etc 中)。
在这些请求中,您需要确保后端逻辑是否像前端逻辑一样进行必要的验证。如果发现前后端逻辑重复,请考虑将逻辑移到后端,让前端调用后端。
确保您清楚每个后端和前端的责任。
游戏在 Javascript 上运行,后端存储的数据在 Django 中验证。
注意:以上只是您可以在明确职责分离的情况下处理它的一种方式。但如果你的游戏非常简单,你甚至可以考虑在没有 Javascript 的情况下在 Django 级别做所有事情。或者 Javascript 中的所有内容,如果不需要 database/server 逻辑,则完全没有 Django。
我希望这个问题不会太奇怪,但我对 Django 还比较陌生。我目前有一个使用 Heroku 和 Django 的网站,我想 post 一堆我在那里制作的小型项目。我想做的其中一个是基于文本的冒险。我相对精通 Python 和 Javascript,并且在这两个方面都构建了类似的东西,但是我无法思考如何最好地将其转换为 Django 框架。
目前在我的网站上,我有一堆页面只是为了文章和文章之类的东西。所有这些都工作正常,我什至在后端添加了一个迷你 CMS,一切正常。然而,其中大部分要么完全在后端构建东西,要么完全在前端构建东西,然后只是进行数据链接。除了构建视图和模型等之外,后端没有真正的 python 代码在进行。如果我要在 Javascript 中构建它,我可能只会对基于文本的大量写作进行硬编码游戏,与 Python 一样,但是我觉得 Django 和链接的 Postgres DB 有可能使它更具动态性和使用它的硬编码更少,但我不太清楚哪个是最好的。
基于此我的问题是:我是否应该完全在 javascript 中构建游戏,它只是提供给网页,然后使用 POST 请求和数据 table,或者有没有办法创建一个 python 脚本,它可以更有效地与网页集成。我想问题实际上更多的是在前端或后端构建游戏更好,因为我看不到一种特别有效的方法来将它划分为两者?
你要问问自己游戏需要从后端(Django 和 Postgres)得到什么数据?明确并具体说明游戏前端需要哪些数据以及何时需要这些数据 (Javascript)?
话虽如此,解决这个问题的一种方法是用纯前端编写游戏,用 javascript 编写会更干净。它应该专注于游戏逻辑和游戏玩法。
播种初始游戏数据
如果您非常清楚在初始加载期间游戏需要什么(即前端),那么您可以考虑在初始页面加载期间提供所有这些数据。 (更多详情:)
后续数据
在初始加载后无法确定的来自后端的其他数据将必须通过 XMLHttpRequest 请求到单独的 Django 视图,其中 returns 仅数据(在 JSON/XML/etc 中)。
在这些请求中,您需要确保后端逻辑是否像前端逻辑一样进行必要的验证。如果发现前后端逻辑重复,请考虑将逻辑移到后端,让前端调用后端。
确保您清楚每个后端和前端的责任。 游戏在 Javascript 上运行,后端存储的数据在 Django 中验证。
注意:以上只是您可以在明确职责分离的情况下处理它的一种方式。但如果你的游戏非常简单,你甚至可以考虑在没有 Javascript 的情况下在 Django 级别做所有事情。或者 Javascript 中的所有内容,如果不需要 database/server 逻辑,则完全没有 Django。