为我的第一个MySQL项目制定计划

时间:2009-07-22 22:41:51

标签: python mysql

我需要在几天内完成ask-a-question site for my uni.的计划。我需要为下周二准备第一版代码,而项目结束时间大约为三周。

有关该项目不适合的问题


我的uni. offers little support我选择的工具:

构建后端的工具

  • Python 构建数据库模式??? (我不确定我可以用Python构建哪些组件)
  • MySQL 来存储数据
  • 我不确定在构建登录和注销系统时使用哪种工具。 他们不允许我使用Google的系统。这迫使我使用一些简单的开源代码,因为构建一个下降登录/注销系统需要一周多的时间。

构建前端的工具

  • Django (如果我们可以在Django中使用MySQL)

规划工具

  • Google文档的电子表格,用于说明用例
  • TopCoder UML工具,以显示数据库中的主键和其他关系

编码工具

我对项目的关注:我的目标是仅为用户和主持人构建数据库系统,以便我只提供以下功能

  1. 允许用户添加到数据库,以便我中和输入(我知道有一些工具,但我不确定它的名称。)
  2. 按时间安排问题
  3. 按名称排列问题
  4. 按主题排列问题
  5. 允许用户删除他们的问题
  6. 向用户发送已成功提出问题的电子邮件
  7. 我不确定的事情

    1. 如何将login -system集成到数据库,以便用户在成功登录时只能看到他的用户名,就像在Joomla中一样
    2. 当我将MySQL用于数据库时,我不应该用Python构建哪些组件
    3. 我的大学。不给我这个项目的硬件支持。这告诉我,我将更好地使用专门从事我的项目的主机。上个月我使用了Djangohosting.ch,他们的蠢事让我开始了。 您会使用哪个主机,以便我可以向我的Uni展示最终产品。
    4. 这是我的第一个官方数据库项目,所以我的计划显然有缺点,因为必须有我不知道的工具。 请指出其中任何一个。

9 个答案:

答案 0 :(得分:4)

首先,这在一周内可以使用很多。但是它就在这里。

后端工具:

  1. SQLAlchemy - 这是一个ORM工具包,当使用Python构建的MySQL数据库时,它对于大多数小型任务来说非常强大。据我所知,这是这项工作的最佳选择。 http://www.sqlalchemy.org/
  2. Django - “......是一个高级的Python Web框架......”对于包含登录/注销方法的网站的快速开发以及对于具有Web / Python理解的人来说,这可能是最好的学习曲线。
  3. 构建前端的工具:

    如果您已经计划将Django用于后端,我建议您也将它用于前端。

    你不确定的事情:

    1. 可以在MySQL中指定用户,并可以相应地设置他们的权限。
    2. 根据您列出的一些要求,大多数声音都可以包含在Django的功能中。

答案 1 :(得分:2)

使用django Model创建注入和检索数据的对象关系映射(ORM)。

对于登录/注销,django具有您可以使用的AuthenticationMiddleware功能,但我不确定您是否可以使用它来解决您的问题。

无论如何,您的项目在给定的截止日期之前是完全不现实的。准备好错过截止日期,并听到他们飞过时发出的嘶嘶声。

答案 2 :(得分:2)

我认为这一切都可以在django中完成。请参阅official tutorial

答案 3 :(得分:1)

我猜你不会被允许使用ORM,因为你称之为“MySQL项目”。

如果这是一个不正确的假设,我同意N Arnold建议使用Django。而不是使用SQLAlchemy,我认为你会发现Django的ORM足够好(特别是如果你使用v1.1rc或trunk)。

就像您对初始问题的一些评论一样,如果您必须学习框架以及在其中生成项目,这看起来似乎是一项大量的工作。另一方面,知道Django的人可能会在一两天内破解这样一个项目的基础。

答案 4 :(得分:1)

您可以使用MySQL构建数据库,请阅读official docs。你使用什么语言编写前端无论是网站,命令行界面,gui界面都是无关紧要的,大多数语言处理得相当好但是你似乎已经开始构建一个Web应用程序了使用Django非常容易实现,这是一个Python Web框架。

做我告诉你的事,如果你坚持下去,你将在16小时内完成。祝好运。 顺便说一句。你的项目似乎专注于很多无关紧要的事情。你正在创建一个数据库应用程序,除非你已经知道CSS和JQuery,为什么不用简单的无格式XHTML创建它;这样你就可以做更少的工作了!

答案 5 :(得分:1)

Django可以使用许多不同的数据库后端,其中一个是MySQL,为了帮助支持它,它提供了一个ORM(对象关系映射)层,它抽象出SQL代码和存储介质,并允许你编写包含存储字段和逻辑的模型必要时不必担心它们如何存储在持久层中。

Django还包含基本身份验证(登录/注销)功能,并且内置了用户和管理员用户的概念。

作为使用内置用户模型和ORM的示例,您可以使用以下代码获取用户提出的所有问题:

Question.objects.all.filter(asker=request.user)

如果问题是您已定义用于保存问题的模型(使用名为“asker”的字段,该字段是用户的外键),request.user是登录网站的用户。

我建议您阅读Django ORM

至于托管它,您可以在台式计算机上使用Ubuntu,或者如果您需要外部主机,则会推荐WebfactionDjangohosting.ch作为两个最“Django Friendly”的主机。

答案 6 :(得分:1)

呃,这个发展的目的是什么?建立一个真正的生产就绪系统,或通过建立一个永远不会真正使用的迷你项目来通过考试?

如果你的目的是通过考试,那么建立老师喜欢看的东西。从他们在课堂上使用的材料中获取线索,并直接询问他们认为什么是好的。

如果你想建立一个生产系统,那么Django将是一个很好的选择。但是,由于对您演示的Django的理解有限,您很可能不会及时完成该项目。

Django已预先存在以下功能:

  • 构建数据库架构。在Django中定义模型类并运行manage.py syncdb。
  • 时,将构建数据库表
  • 登录系统。 Django有一个带有cookie等登录系统;和几个第三方Django插件扩展了这个系统。
  • 加密数据库中的密码,如果内存服务,Django将SHA-1与salt一起使用。

因此,您的教师可以合理地说您在建模数据库模式时没有展示自己的技能,您刚刚使用了Djangos预先存在的功能。他们对此会好吗,或者他们会在考试中失败吗?

如果你需要展示对核心概念的理解,或许你最好还是选择一个你已经熟悉的系统,而不是将Django混合成另一种复杂性,另外你需要学习的东西很少时间...

答案 7 :(得分:0)

关于版主和用户

主持人和用户之间有什么区别?版主可以修改文字,但如何?他们是否计划您练习权限,fs或某些开源系统以区分用户和版主?

很奇怪,他们不允许谷歌产品,但他们允许开源。有趣的是,USFCA鼓励类似项目中的Google产品。也许,有些用户可以帮助您使用用户空间。

祝你好运!

答案 8 :(得分:0)

他们仅向我们提供this exampleweb app。代码对我没用,因为代码是芬兰语,用PHP编写。它也不是开源的,所以我不能在这里粘贴代码。

我想在Python中看到类似的例子。请将链接添加到评论中。