我应该使用 Python 还是 Javascript 来使用 Django 构建基于文本的冒险?

问题描述

我希望这不会像一个太奇怪的问题,但我对 Django 比较陌生。我目前有一个使用 Heroku 和 Django 的网站,我想发布一堆迷你项目,我在那里制作。我想做的其中一个是基于文本的冒险。我相对精通 Python 和 Javascript,并在两者中构建了类似的东西,但是我在思考如何最好地将其转换为 Django 框架时遇到了麻烦。

目前在我的网站上,我有一堆页面,专门用于诸如文章和书面文章之类的内容。所有这些都运行良好,我什至在后端添加一个迷你 CMS,一切正常。然而,其中大部分要么完全在后端构建东西,要么完全在前端构建,然后只是进行数据链接。除了构建视图和模型等之外,后端没有真正的 Python 代码。如果我用 Javascript 构建它,我可能只会硬编码大量基于文本的游戏的写作,同样使用 Python,但是我感觉使用 Django 和链接的 Postgres DB 有可能使用它使其更具动态性和更少的硬编码,但我无法弄清楚哪个是最好的。

我基于此的问题是:我应该完全用 JavaScript 构建游戏,它只是提供给网页,然后使用 POST 请求和数据表更新视图,或者有没有办法创建一个集成的 Python 脚本与网页更有效。我想问题实际上更多的是在前端或后端构建游戏更好,因为我看不到一种特别有效的方法来将其划分为两者?

解决方法

你必须问问自己游戏需要从后端(Django 和 Postgres)获取哪些数据?明确并具体说明哪些数据以及何时需要将这些数据放入游戏前端 (Javascript)?

话虽如此,解决这个问题的一种方法是让游戏用纯前端编写,用 javascript 编写会更干净。它应该专注于游戏逻辑和游戏玩法。

播种初始游戏数据

如果您在初始加载期间非常清楚游戏(即前端)需要什么,那么您可以考虑在初始页面加载期间提供所有这些数据。 (更多细节:https://stackoverflow.com/a/298793/764592

后续数据

在初始加载后无法确定的来自后端的其他数据必须通过 XMLHttpRequest 请求到单独的 Django 视图,该视图仅返回数据(以 JSON/XML/等形式)。

在这些请求中,您需要确定后端逻辑是否与前端逻辑一样进行了必要的验证。如果您发现前后端逻辑重复,请考虑将该逻辑移到后端,让前端调用后端。

确保您清楚每个后端和前端的责任。 游戏运行在Javascript上,后端存储的数据在Django中验证。

注意:以上只是您在明确职责分离的情况下处理它的一种方式。但是如果你的游戏非常简单,你甚至可以考虑在没有 Javascript 的情况下在 Django 级别上做任何事情。或者如果不需要数据库/服务器逻辑,则完全没有 Django 的 Javascript 中的所有内容。