【问题标题】:Django to create and change mysql database for learning purposesDjango 为学习目的创建和更改 mysql 数据库
【发布时间】:2018-01-02 14:30:31
【问题描述】:

我正在学习 Python 编程语言。我对 Python 没有任何问题。我阅读了 Python 官方文档,并且可以用 Python 编写小程序。我想熟悉 mysql 数据库,因为它对学习软件开发概念很有用。我已经在我的电脑上安装了 mysql 数据库和 Django。我安装了 Ubuntu 14.04 和 python 3.4。我已经将 Django 设置配置为使用 mysql 数据库。我测试了 Django 与 mysql db 的连接,一切正常。

我是网络开发的新手。我没有创建自己的网站,也没有开始开发任何网络应用程序。

我目前的目的是掌握 mysql 数据库和表的创建,进行更改/迁移/查询,使用 Django 模型和 Python

在不同时开发 Web 应用程序/本地应用程序的情况下使用 Django ORM 与 mysql 数据库一起工作是否合理/可行?正如我所说,我没有自己的网站。我只想尝试在我的计算机上同时使用 mysql 和 Django,以便在这方面更深入地了解 Django 和 mysql。

我的最终目的是使用 Python 进行开发,包括使用 mysql 数据库。

没有 Python 和 Django 的 Mysql 对我没有用。

【问题讨论】:

  • 使用 sqlite。将更好地用于学习目的,主要是如果您打算更好地学习 django。当我创建新的东西时,我刚开始使用 sqlite,因为我不需要担心数据库配置、安装等。Sqlite 命令易于使用且易于理解。 PROJECT_DIR = os.path.abspath(os.path.dirname(file)) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(PROJECT_DIR, 'yourdatabasename.db'), } }
  • “使用 sqlite。将更好地用于学习目的”对于想要学习和使用 rdbms 的人来说只是最糟糕的建议。
  • "没有 Python 和 Django 的 Mysql 对我来说毫无用处" => 如果您不了解它在数据库中的转换方式,您就不能期望正确使用 Django 模型(ORM 部分)级别(模式、查询等)也没有任何适当的关系数据库模式设计的概念。但如果你真的坚持要浪费你的时间,那么请继续......

标签: python mysql django database


【解决方案1】:

如果你想学习和使用 MySQL,那么就不要在它上面做任何事情——不要 Django,不要 ORM,甚至不要 Python 脚本。学习配置您的 mysql 服务器(我的意思是服务器进程 - 不必在不同的计算机上),以使用命令行 mysql 客户端(数据库创建、表创建/修改、添加/更新/删除行,并且,最重要的是,执行简单和复杂的查询)。

在此过程中,了解正确的关系数据建模(规范化等),以便您充分了解如何设计架构。

一旦您对此感到满意,请花一些时间(此时应该很快)学习使用您的 python 版本的 mysql 连接器从 python 脚本执行相同的操作。

那么,如果你想学习 Web 开发和 Django,那就去吧。当您已经很好地了解了底层发生的事情时,ORM 非常容易使用,所以到那时您应该不会对这部分有太多问题。您仍然需要学习的是 HTTP 协议(​​尝试在不了解 HTTP 协议的情况下进行 Web 编程就像在不知道如何驾驶汽车的情况下尝试赢得赛车比赛 - 技术上并非不可能但它最终可能是非常痛苦的体验),然后是前端的东西(html/css/javascript),最后是 Django 的视图/模板部分(一旦你知道 HTTP 和 html,这应该很容易)。

您当然可以直接进入 Django,但您可能会一次与太多的概念作斗争,并最终花费两倍的时间来弄清楚一切是如何工作的以及为什么会这样工作。

【讨论】:

  • 正如我所说,我正在学习 Python。主要目的是学习如何编码。因此,mysql 概念与 Python 和 Django 结合使用很有用。我了解到专业开发人员不会专门学习 sql 语言这一事实​​。此外,他们并不认为它是一种成熟的编程语言。
  • 我已经做了 20 年的专业开发人员,我可以向您保证“mysql 概念”(实际上是:“关系数据库概念”——周围还有很多其他 SQL 数据库)很有用通过他们自己。 SQL 确实不是一种编程语言,但是一旦您的代码与 SQL 数据库交互,您确实必须知道如何使用这个 SQL 数据库。首先学习“手动”使用它会更快,让您测试/调试查询而无需接触应用程序的代码,最终可以帮助您调试 ORM 的问题(如果您使用的话)。
  • 只是为了说明清楚:SQL 是此处针对开发人员职位的屏幕测试的一部分。如果您不了解 SQL,那么您将不会被录用。就这么简单。
  • 感谢您的意见。我想同时跳入 Django 和 mysql。 :) 我的问题是是否可以不开发某个应用程序。
  • Err...如果不实际进行项目,您将如何学习实现基于 django 的项目?
猜你喜欢
  • 1970-01-01
  • 2020-06-29
  • 2021-11-08
  • 2010-12-14
  • 2018-09-17
  • 2013-10-14
  • 2016-04-29
  • 2012-02-12
  • 1970-01-01
相关资源
最近更新 更多