由新手提供Python的爱好项目 - 歌词网站

时间:2012-11-25 23:57:13

标签: python database django flask

我正在学习Python,作为个人爱好项目,我将使用Python框架构建一个Lyrics数据库网站。它们适用于一些接近灭绝的印度语言的歌曲。我确实有一点Javascript / CSS经验。该网站将至少有2000首歌曲,可能还会更晚。

  1. 我想知道哪个框架(Flask,Django等)适合这个?除了官方文档之外的任何推荐资源?
  2. 我希望查询速度快。像http://definr.com/这样的东西。我应该知道什么样的事情?
  3. 我应该使用哪种数据库? MangoDB,NoSQL,MySQL等。请记住,因为这是一个个人项目,我宁愿不花很多钱来承担托管费用。
  4. 这不是一个周末的黑客攻击。而且我计划在很长一段时间内完成这个项目。但是,它仍将是一个个人项目,而不是用于货币化。

3 个答案:

答案 0 :(得分:2)

出于多种原因,我建议使用Django。

  • Django更像是一个完整的堆栈框架,你可以在其中包含大量电池。这意味着它可能更容易上手。您将在一个地方拥有所有文档,并且无需使用第三方资源即可完成大量工作。 使用Flask,您必须使用插件进行身份验证等操作。批准的插件非常好,但是仍然需要找到合适的软件包,特别是对于新手来说,它可能也更难。 Django带有自己的ORM,它负责将对象持久化到数据库中,并鼓励您遵循某个项目布局。使用Flask,您必须自己选择一种方法来保存数据,并且必须对项目的布局做出一些决定。 所以我建议从Django开始,稍后学习Flask,如果你想要更灵活的东西。
  • 你的用例可能很适合Django。 Django带有一个集成的管理界面,特别适用于类似CMS的项目,大多数操作都是创建或编辑数据的。使用Django,您将获得开箱即用的管理界面。同样,还有Flask的软件包可以为你提供相同的功能,但是由于它们不能做出与Django可以做出的相同的假设,因为所有东西都很合适,所以它们会更难运行。

如果选择Django,MongoDB就会出局。有一些方法可以使用它,但你应该坚持使用Django ORM作为你的第一个项目。在我看来,如果选择MySQL或PostgreSQL并不重要,ORM将处理两者都很好。如果您使用MySQL,请注意,如果您使用MyISAM作为您的存储引擎,交易将无法像您预期的那样运作。 MySQL可能更常由共享主机提供商提供,PostgreSQL可能更强大一些。但是你们两个都没事。

如果你想快速查询,有一个重要的建议:缓存。 使用像memcached这样的东西,并尽可能多地缓存。如果你想要快速查找,你选择哪个数据库可能不会产生太大的影响,尽可能地缓存。

答案 1 :(得分:0)

您的要求:

  • 寻找快速
  • 托管便宜
  • in python
对于这么简单的事情,django或者烧瓶也同样有用。我更倾向于Django,使用heroku进行托管,你可能不得不为一些Amazon RDS数据库服务器进行外壳,但是如果你想存储一堆内容。

  • Heroku - Free Tier
  • Amazon RDS - Micro Instance
  • Django - contrib.admin包的b / c,你可以获得CRUD交互并快速启动。

答案 2 :(得分:0)

考虑在Django中构建它并将其部署在AppFog上。您将找不到许多允许安装Django,Flask或任何其他Python框架的廉价主机,但AppFog支持它并拥有可观的免费套餐。

以下是一些考虑每个原因的理由:

Django的

  • 内置用户管理
  • 支持表格,模板
  • 基于数据库模型的自动管理UI
  • 广泛的社区知识;广泛的文件

烧瓶

  • 非常轻量级
  • 使用表格的WTForms
  • 使用Jinja作为模板