django使用MySQL数据库流程

1.数据迁移
不同的app连接不同的数据库(例子中blog用默认的数据库,blog4用MySQL数据库)

(1)要连接MySQL数据库,首先下载MySQL数据库和MySQLdb模块

下载MySQL数据库的参考连接:

http://www.cnblogs.com/onlycxue/p/3291889.html
而MySQLdb模块安装参考连接:https://pypi.python.org/pypi/MySQL-

python/1.2.4 (我是下载的.exe)

(2)接下来就是新建django的工程什么的就不详细讲了(我的工程里有blog和blog4两个app

(3)修改setting.py配置文件
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.sqlite3‘,
‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
},
‘db2‘: {
‘ENGINE‘:‘django.db.backends.mysql‘,
‘NAME‘:‘dbname2‘,
‘USER‘:‘root‘,
‘PASSWORD‘:‘5302613‘,
‘HOST‘:"127.0.0.1",
},
}

DATABASE_ROUTERS = [‘mysite.database_router.DatabaseAppsRouter‘]
DATABASE_APPS_MAPPING = {
‘blog4‘: ‘db2‘,
}

(4)blog4的models.py文件的代码都是如下:

from __future__ import unicode_literals
from django.db import models

# Create your models here.
class Blog4(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()

def __unicode__(self):
return self.title

(5)在工程的文件夹中的同名文件夹mysite.py中添加一个database_router.py文件
代码在这个网站复制:http://www.ziqiangxuetang.com/django/django-multi-

database.html

(7)进入到工程的目录,输入一下命令:
>>>python manage.py makemigrations

Migrations for ‘blog4‘:
blog4\migrations\0001_initial.py:
- Create model Blog4

>>>mysql -u root -p; (进入MySQL数据库)

>>>create database dbname2;

mysql> create database dbname2;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dbname1 |
| dbname2 |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)

可以看到我建立的dbname2数据库成功了

>>>python manage.py migrate --database=db2 (为blog3同步到MySQL数据库)

Operations to perform:
Apply all migrations: admin, auth, blog, blog2, blog3, blog4, contenttypes, se
ssions
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying blog.0001_initial... OK
Applying blog2.0001_initial... OK
Applying blog3.0001_initial... OK
Applying blog4.0001_initial... OK
Applying blog4.0002_auto_20160323_1429... OK
Applying sessions.0001_initial... OK

看到上面,证明同步到MySQL数据库成功了!!!

进入到MySQL数据库看看是否成功:

mysql> use dbname2;
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_dbname2 |
+----------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| blog2_blog2 |
| blog3_blog3 |
| blog4_blog4 |
| blog_blog |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+----------------------------+
14 rows in set (0.00 sec)

这次同步数据库建立的表是blog4_blog4,可以看到是成功的

(8)操作一下数据库看看能否插入数据
>python manage.py shell
>>> from blog4.models import Blog4
>>> Blog4.objects.create(title="title 1",content="content 1")
<Blog4: title 1>

在去到数据库下看看:
mysql> SELECT * FROM blog4_blog4;
+----+---------+-----------+
| id | title | content |
+----+---------+-----------+
| 1 | title 1 | content 1 |
+----+---------+-----------+
1 row in set (0.00 sec)

呵呵,插入成功,搞定收工.....

有些步骤省略了,将就着看

参考连接:http://www.cnblogs.com/fengri/articles/django5.html

时间: 2024-12-27 01:25:36

django使用MySQL数据库流程的相关文章

django配置mysql数据库

安装完python后,安装python-mysql来连接mysql数据库,下载地址http://sourceforge.net/projects/mysql-python/,安装很简单,点下一步就可以了,不过要装和你python版本相对应的版本,否则比较蛋疼 安装完成后,配置下django的数据库连接,打开项目的配置文件settings.py,修改DATABASES参数 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql'

python——django使用mysql数据库(一)

之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有些有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经拥有一个django项目.已安装MySQLdb,进入mysql创建一个新的库(注意,这里必须是新的库,如果库里已经有表,就会出问题.) 修改配置项:打开已经创建好的django项目,在INSTALLED_APPS添加自己的工程名称.修改DATABASES项中配置的内容. INSTALLED_APPS

python3下django连接mysql数据库

1.安装pymysql pip install pymysql 有一点需要注意,有的系统(比如ubuntu16.04)同时安装了python2和python3,而比较新的django需要在python3下运行,所以在安装pymysql时可能要使用命令 pip3 install pymysql 进行安装. 2.修改项目settings.py 找到并修改DATABASES为如下形式: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.m

Django 配置MySQL数据库

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mydata', # 你要存储数据的库名,事先要创建之 'USER': 'root', # 数据库用户名 'PASSWORD': '0000', # 密码 'HOST': 'localhost', # 主机 'PORT': '3306', # 数据库使用的端口 } } 添加代码 import pymysql pymysql.insta

django指定mysql数据库 ORM查询

django原生自带数据库,不过自带的数据库是sqlite 这次使用的orm框架操作数据库 这时候你就需要换上你想用的数据库比如大众化的mysql 但是你还是首先要先安装pymysql的驱动 pip install PyMySQL 在Django的工程同名子目录的__init__.py文件中添加如下语句 from pymysql import install_as_MySQLdb install_as_MySQLdb()django 在python2.7一直使用的是db操作数据库由于django

Django使用Mysql数据库已经存在的数据表方法

源地址:https://www.jb51.net/article/140939.htm 使用scrapy爬取了网上的一些数据,存储在了mysql数据库中,想使用Django将数据展示出来,在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用. 可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了. 了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表. 假如在Django存在mod

django 使用mysql 数据库

在 django 创建项目中 默认使用的是  splite3 数据库,不是mysql 数据库,要使用mysql ,要做一些配置: 在 settings.py 中修改如下: DATABASES = { 'default': { #'ENGINE': 'django.db.backends.sqlite3', #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': 'te

Django和MySQL数据库第一次连接时遇到的若干问题及解决办法

Django默认的数据库是sqlite3,但我已经安装好了MySQL数据库,并且Pycharm又是社区版,跟着教程的讲解学习,有些地方不能对应,于是尝试进行了一些摸索,结果遇到若干个坑,好在慢慢摸索还是一一解决了.现将自己认为最合理的顺序和方法总结如下. 一.先更新pip主机安装的Python环境中自带的pip更新起来很容易,执行python -m pip install --upgrade pip命令即可.但在虚拟环境中更新却报错. 经过一番搜索,原来是要删掉虚拟环境中的缓存文件. 再次执行升

【python-Django开发】Django 配置MySQL数据库讲解!!!

官方文档请阅读:https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-db-api-drivers 配置MySQL数据库 1. 新建MySQL数据库 1.新建MySQL数据库: xxx_project $ create database xxx_project charset=utf8; 2.新建MySQL用户 $ create user username identified by '123456'; 3.授权itcast用户访