利用Python Django一步步搭建个人博客(二)

Hello,欢迎来到我们的“利用PythonDjango一步步搭建个人博客”系列的第二部分。在第一部分中,我们讨论了建立开发环境和创建项目的问题。当我们使用“python manage.py runserver”命令运行我们的服务器时,我们会得到如下输出:

告诉我们有未应用的迁移。这和Django与您的数据库连接有关(稍后将详细介绍)。现在,让我们先处理掉这个警告。在虚拟环境中通过命令行运行以下命令:

python manage.py migrate

我们将自己的数据库视为excel中的表格。上面命令的作用主要是创建您希望用于填充数据的行和列,也就是建立表结构。(后面细说)现在我们已经解决了上面的问题,接下来让我们创建一个超级用户,这个超级用户就相当于网站的管理员。运行以下命令:

python manage.py createsuperuser

填写各项内容(电子邮件是可选的)并设置安全密码之后,我们就可以使用我们刚刚提供的详细信息登录Django管理员。为此,请使用以下命令从终端运行服务器:

python manage.py runserver

这次运行就不会再有错误或警告了,打开您喜欢的浏览器,输入地址localhost:8000 / admin。 提供您刚刚创建的超级用户(管理员)的详细信息以进行登录。

这时候呈现在面前的就是默认情况下程序为我们创建的Django管理页面。我们可以从这个页面创建新用户,并为他们分配权限和使用更多强大功能。我们将在本教程的整个过程中访问此页面,因此我们现在对它要好好熟悉一下。

我们已经看到了管理页面以及它可以做什么,让我们开始在我们的博客项目中添加“骨肉”,以获得我们想要的最终成果。在终端中运行以下命令:

Django-admin startapp blogapp

这在我们的Django项目中创建了一个名为“blogapp”的应用程序。Django中的一个项目是应用程序的集合(和手机应用程序不同)。将Django项目中的应用程序视为房屋中的房间,你拥有的房间越多,房子就越大。房子里的房间越少,房子越小,房间是房子的一部分。这可能不是最合适的类比,但能帮你理解。为了更好地说明项目是一组应用程序,请打开项目文件夹。如果你像我一样命名你的项目“Blog”,你应该看到其中的一个文件夹具有相同的名称。在此子文件夹中,是一个名为“settings.py”的文件,可以在文本编辑器中打开它。

“INSTALLED_APPS”表示此项目当前存在的应用程序。如您所见,有一个名为“django.contrib.admin”的应用程序。还记得我们之前启动的管理页面吗?Django就是从这里知道它是我们项目的一部分。现在,我们需要将刚创建的“blogapp”添加到已安装的应用列表中。设置文件此时如下:

不要忘记在你的应用程序之后添加逗号,否则当你尝试访问时,Django会向你抛出一些讨厌的错误。接下来,我们要创建数据库来保存我们的博客文章。在Django中,这很容易做到,它不涉及编写SQL命令。 Django提供了一些抽象,以使您的应用程序更安全。打开您的blogapp文件夹,然后打开“models.py”文件。将以下代码写入其中:

一个小解释:我们创建的是python中的一个类。该类处理我们的所有文章帖子并将它们保存到数据库中。该数据库包含文章标题、内容、更新时间和编辑时间的字段。该类还带有一个函数“__unicode__”。此函数返回文章的标题,而不仅仅是对象。

注意:如果您使用Python 3x,应使用__str__函数代替__unicode__函数,您的代码将如下所示:

接下来,我们想让Django记录我们刚刚创建的数据库。为此,我们在终端中运行以下两条命令:

python manage.py makemigrations

python manage.py migrate

现在我们已成功设置数据库,我们已准备好开始为我们的博客应用程序编写更复杂的代码。

你到目前为止应该学到了:

Django中的应用程序是什么

如何创建超级用户或管理员

如何在Django中创建应用程序

在Django中设置数据库并进行迁移

在第三部分中,我们将进行更复杂的操作并为我们的应用程序搭建外观。不见不散!

END

本公众号原创作品,未经授权禁止转载,特此声明,谢谢合作!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181016A27Q8N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券