前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用MySQL作为Django数据库后端

使用MySQL作为Django数据库后端

作者头像
用户1456517
发布2019-03-05 15:57:12
1.4K0
发布2019-03-05 15:57:12
举报
文章被收录于专栏:芝麻实验室芝麻实验室

写在开始之前

  1. Django默认使用SQLite作为默认数据库。如果不熟悉数据库或仅是为了测试,这是最简单的选择,并且Python内置了SQLite,但是,对于准备开始1个真正的项目而言,应该使用1个更具扩展性的数据库。例如:MySQL/PostgreSQL,毕竟中途切换数据库是个令人头疼的问题;
  2. 除了DB API驱动程序之外,Django还需要一个适配器来从其ORM访问数据库驱动程序。Django为mysqlclient提供了一个适配器,因此你可以不用关心这一点;
  3. 使用SQLite以外的数据库,必须事先创建数据库。

怎么做?

  • 安装MySQL的Python API 驱动程序 # ArchLinux用户 [mu@mu polls]$ sudo pacman -S base-devel #至少安装gcc # CentOS用户 # yum -y install gcc mysql-devel python3X-devel [mu@mu polls]$ sudo pip3 install mysqlclient
  • 创建数据库 [mu@mu polls]$ mysql mysql -uroot -p MariaDB [mysql]> CREATE DATABASE django_project CHARACTER SET utf8; #确保默认情况下所有表和列都将使用UTF-8,这是Django所期望的 Query OK, 1 row affected (0.00 sec) MariaDB [mysql]> GRANT ALL PRIVILEGES ON django_project.* TO django@'localhost' IDENTIFIED BY 'guomai'; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
  • 配置MySQL DB ENGINE及相关键值项 [mu@mu polls]$ vi ../mysite/settings.py #修改DATABASE配置段 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_project', 'USER': 'django', 'PASSWORD': 'guomai', 'HOST': 'localhost', # 如是在本机,还可以指定UNIX sockets套接字文件,即'/var/run/mysql' 'PORT': '3306', } } #一个值得关注的Tip Django使用MySQL作为后端时,连接设置按此优先级顺序使用: 1. OPTIONS; 2. NAME,USER,PASSWORD, HOST,PORT; 3. MySQL选项文件; 换句话说,如果你设置数据库的名称OPTIONS,这将优先于NAME,它将覆盖MySQL选项文件中的任何内容。 以下是使用MySQL选项文件的示例配置: # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/path/to/my.cnf', }, } } # my.cnf [client] database = NAME user = USER password = PASSWORD default-character-set = utf8
  • 导入APP [mu@mu polls]$ vi ../mysite/settings.py #修改`INSTALLED_APPS`设置项 INSTALLED_APPS = [ #应用能在多个项目中使用 'polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
  • 默认开启的某些应用需要至少一个数据表,所以,在使用他们之前需要在数据库中创建一些表 [mu@mu mysite]$ python3 manage.py migrate #应用ORM创建数据表
请输入图片描述
请输入图片描述
  • 查看migrate为应用创建的数据表。如果通过show tables能够看到下图所示,意味着以及成功切换Django的数据库后端为MySQL
请输入图片描述
请输入图片描述

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/09/16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档