专栏首页云计算教程系列如何在Ubuntu 14.04上使用MySQL或MariaDB和Django应用程序
原创

如何在Ubuntu 14.04上使用MySQL或MariaDB和Django应用程序

介绍

Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载下运行良好,但更传统的DBMS可以提高生产性能。

在本指南中,我们将演示如何安装和配置MySQL或MariaDB以与Django应用程序一起使用。我们将安装必要的软件,为我们的应用程序创建数据库凭据,然后启动并配置一个新的Django项目以使用此后端。

准备

一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

当您准备好继续时,请继续阅读。

从Ubuntu存储库安装组件

我们的第一步是从存储库安装我们需要的所有部分。我们将安装pipPython包管理器,以便安装和管理我们的Python组件。我们还将安装与它们交互所需的数据库软件和相关库。

我们将在下面介绍MySQL和MariaDB,因此请选择与您要使用的DBMS相关的部分。

MySQL的

如果您想使用MySQL,以下apt命令将为您提供所需的软件包:

sudo apt-get update
sudo apt-get install python-pip python-dev mysql-server libmysqlclient-dev

系统将要求您选择并确认管理MySQL帐户的密码。

安装后,您可以通过键入以下内容来创建数据库目录结构:

sudo mysql_install_db

然后,您可以运行以下命令来运行简单的安全脚本:

sudo mysql_secure_installation

系统会要求您提供在安装期间为MySQL设置的管理密码。之后,你会被问到一系列问题。除了要求您选择其他管理密码的第一个问题外,请为每个问题选择“是”。

通过安装和初始数据库配置,我们可以继续创建我们的数据库和数据库用户。跳到下一部分。

MariaDB

如果您更喜欢MariaDB,可以按照以下说明进行安装并执行必要的初始配置。键入以下内容从存储库安装软件包:

sudo apt-get update
sudo apt-get install python-pip python-dev mariadb-server libmariadbclient-dev libssl-dev

系统将要求您选择并确认管理MariaDB帐户的密码。

然后,您可以运行以下命令来运行简单的安全脚本:

sudo mysql_secure_installation

系统将要求您提供在安装期间为MariaDB设置的管理密码。之后,你会被问到一系列问题。除了第一个问题,要求您选择另一个管理密码,请为每个问题选择“是”。

通过安装和初始数据库配置,我们可以继续创建我们的数据库和数据库用户。

创建数据库和数据库用户

无论您是安装MySQL还是MariaDB,都可以按原样遵循本指南的其余部分。

我们可以通过输入以下内容登录与我们的数据库软件的交互式会话(无论您使用哪种数据库软件,命令都是相同的):

mysql -u root -p

系统将提示您输入在安装期间选择的管理密码。之后,您将收到提示。

首先,我们将为Django项目创建一个数据库。出于安全原因,每个项目都应该有自己独立的数据库。我们将在本指南中调用我们的数据库myproject,但最好选择更具描述性的内容。我们将数据库的默认类型设置为UTF-8,这是Django所期望的:

CREATE DATABASE myproject CHARACTER SET UTF8;

请记住使用分号在SQL提示符下结束所有命令。

接下来,我们将创建一个数据库用户,我们将用它来连接数据库并与之交互。将密码设置为强大且安全的密码:

CREATE USER myprojectuser@localhost IDENTIFIED BY 'password';

现在,我们需要做的就是为我们创建的数据库提供数据库用户访问权限:

GRANT ALL PRIVILEGES ON myproject.* TO myprojectuser@localhost;

刷新更改,以便在当前会话期间可用:

FLUSH PRIVILEGES;

退出SQL提示符以返回到常规shell会话:

exit

在虚拟环境中安装Django

现在我们的数据库已经建立,我们可以安装Django。为了更好的灵活性,我们将在Python虚拟环境中安装Django及其所有依赖项。

您可以通过键入以下内容获取允许您创建这些环境的virtualenv包:

sudo pip install virtualenv

创建一个目录来保存Django项目。之后移入目录:

mkdir ~/myproject
cd ~/myproject

我们可以通过输入以下内容创建一个虚拟环境来存储我们的Django项目的Python需求:

virtualenv myprojectenv

这将安装Python的本地副本和pipmyprojectenv项目目录中调用的目录。

在我们在虚拟环境中安装应用程序之前,我们需要激活它。您可以输入以下命令:

source myprojectenv/bin/activate

您的提示将更改为表示您现在正在虚拟环境中运行。它看起来像这样(myprojectenv)user@host:~/myproject$

一旦您的虚拟环境处于活动状态,您就可以安装Django pip。我们还将安装mysqlclient允许我们使用我们配置的数据库的包:

pip install django mysqlclient

我们现在可以在我们的myproject目录中启动Django项目。这将创建一个同名的子目录来保存代码本身,并将在当前目录中创建一个管理脚本。确保在命令末尾添加点,以便正确设置:

django-admin.py startproject myproject .

配置Django数据库设置

现在我们有了一个项目,我们需要配置它以使用我们创建的数据库。

打开位于子项目目录中的主Django项目设置文件:

nano ~/myproject/myproject/settings.py

在文件底部,您将看到如下所示的DATABASES部分:

. . .
​
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
​
. . .

这当前配置为使用SQLite作为数据库。我们需要更改它,以便使用我们的MySQL / MariaDB数据库。

首先,更改引擎,使其指向mysql后端而不是sqlite3后端。对于NAME,使用数据库的名称(myproject在我们的示例中)。我们还需要添加登录凭据。我们需要用户名,密码和主机才能连接。我们将添加并留空端口选项,以便选择默认值:

. . .
​
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'myproject',
        'USER': 'myprojectuser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '',
    }
}
​
. . .

完成后,保存并关闭文件。

迁移数据库并测试您的项目

现在配置了Django设置,我们可以将数据结构迁移到数据库并测试服务器。

我们可以从创建和应用迁移到我们的数据库开始。由于我们还没有任何实际数据,这只是设置初始数据库结构:

cd ~/myproject
python manage.py makemigrations
python manage.py migrate

创建数据库结构后,我们可以通过键入以下内容来创建管理帐户:

python manage.py createsuperuser

系统将要求您选择用户名,提供电子邮件地址,然后选择并确认该帐户的密码。

设置管理员帐户后,可以通过启动Django开发服务器来测试数据库是否正常运行:

python manage.py runserver 0.0.0.0:8000

在Web浏览器中,访问服务器的域名或后跟:8000IP地址,然后访问默认的Django根页面:

http://server_domain_or_IP:8000

您应该看到默认索引页面:

附加/admin到URL的末尾,您应该能够访问管理界面的登录屏幕:

使用createsuperuser命令输入刚刚创建的用户名和密码。然后,您将进入管理界面:

完成调查后,可以通过在终端窗口中按CTRL-C来停止开发服务器。

通过访问管理界面,我们已确认我们的数据库已存储了我们的用户帐户信息,并且可以对其进行适当访问。

结论

在本指南中,我们演示了如何安装和配置MySQL或MariaDB作为Django项目的后端数据库。虽然SQLite可以在开发和轻量级生产期间轻松处理负载,但大多数项目都可以从实现功能更全面的DBMS中受益。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Use MySQL or MariaDB with your Django Application on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用CentOS 7上的Bottle Micro Framework部署Python Web应用程序

    由于其灵活性和高级功能,Python是一种优秀的Web编程语言。Web框架可以使编程Web应用程序更加简单,因为它们连接了强大的Web界面所需的许多组件。

    苏子晨
  • 如何在Ubuntu 16.04上使用MySQL设置远程数据库以优化站点性能

    随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置。如果您在同一台计算机上托管Web服务器和数据库后端,最好将这两个功能分开,以便每个功能可以在自己...

    苏子晨
  • 如何在Debian 9上安装MariaDB

    MariaDB是一个开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分代替M...

    苏子晨
  • 如何在CentOS 7上使用Django应用程序使用MariaDB

    Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

    你在哪里
  • 点开瞅瞅,再来几道Python面试题吧,Python面试题No20

    这个题就是面向对象设计和设计模式的开始。 你可能比较熟悉的模式叫做: MVC。说是 Model View Controller,而在 Django 中因为 T...

    梦想橡皮擦
  • 如何在Ubuntu 16.04上使用PostgreSQL和Django应用程序

    Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

    水门
  • leetcode1546题解【前缀和+贪心】

    2.在求前缀和过程中将前缀和sum插入到set集合中,每次都在set集合中寻找sum-target是否存在,如果存在,说明存在这么一个子数组,满足该子数组中的数...

    _DIY
  • 如何在CentOS 7上使用PostgreSQL和Django应用程序

    Django是一个用于快速创建Python应用程序的灵活框架。默认情况下,Django应用程序配置为将数据存储到轻量级SQLite数据库文件中。虽然这在某些负载...

    彼岸轮回
  • 装服务器偶得

    happy123.me
  • 大疆发布精灵4,更智能

    镁客网

扫码关注云+社区

领取腾讯云代金券