cnd怎么连接mysql_Django连接数据mysql

本文介绍了如何在CentOS 6.x系统中,使用Python 3.4.3和Django 1.9.x连接MySQL数据库,由于MySQLdb安装困难,选择使用PyMySQL替代,并详细说明了配置步骤,包括在`__init__.py`和`manage.py`中引入PyMySQL,修改`settings.py`的数据库配置,创建数据库,定义Django模型,同步数据库表,以及通过Django shell操作数据库的方法。
摘要由CSDN通过智能技术生成

【背景】

系统centos6.x

python 版本 3.4.3

django 1.9.x

默认django使用的数据库是sqlite3, 而我们常用的是mysql

我们需要连接mysql此时是需要django连接mysql的驱动,默认是MySQLdb,但是这个是很难下载安装的,在centos环境是pip是无法安装

所以需要使用pymysql 进行取代(安装来自包PyMySQL)

64502380b23c56820e863be0fd2911dc.png

86e3aeb84ffae4204a41c3ced12c5b2e.png

【开始进行代替默认的MySQLdb工具的步骤】

1 在项目下的app目录下 加入使用pymsql作为MySQLdb

[root@master firstproject]# cat blog/__init__.py#!/usr/bin/env python

import pymysql

pymysql.install_as_MySQLdb()

2 修改manage.py加入使用pymysql

[root@master firstproject]# cat manage.py

#!/usr/bin/env python

import os

import systry:

import pymysql

pymysql.install_as_MySQLdb()

except Exception:

pass

if __name__ == "__main__":

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "firstproject.settings")

from django.core.management import execute_from_command_line

execute_from_command_line(sys.argv)

【连接数据库的配置】

你要使用数据,你必须在配置文件中指明数据的的一些信息吧

rm -f db.sqlite3   这个可以删除,我们不使用sqlite文本数据库DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

修改为:DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'blog',

'USER': 'root',

'PASSWORD': '12qwaszx',

'HOST': 'localhost',

'PORT':'',

}

}

包含,mysql的主机端口,用户和库(blog)

在你的mysql中创建blog这个库mysql -uroot -p12qwaszx  -e 'create database blog character set utf8'mysql -uroot -p12qwaszx  -e "show databases like '%blog%'"+-------------------+

| Database (%blog%) |

+-------------------+

| blog              |

+-------------------+

[root@master ~]#

【django建立数据库模型(表)和操作数据库】

[root@master firstproject]# vim blog/models.pyfrom django.db import models

# Create your models here.

class People(models.Model):

name = models.CharField(max_length=32)

class Meta:

db_table = 'self_people'

注意: 定义了People类继承数据库的模型,定义了这个类模型(表)有一个字段name字段,且自定义了表名为self_people!class Meta:

db_table = 'self_people'

写这个的目的是,自定义表名,而不是有django按照的方式生成表名!

【同步表信息】python manage.py makemigrations

python manage.py migrate

e599defbc3faf7067a40a09029a29eee.png

查看从数据库中查看表的信息:(我使用的是navicat GUI管理mysql的工具查看)

ffed14f431d25464d284f6a5743d0cbc.png

【操作数据库】--我们这里使用django 提供的交互式形式去调用djangol提供的api接口

python manage.py shell

第一:导入People类from blog.models import People

第二: 查看这个表中开始的条目People.objects.count()

第三: 创建条目:People.objects.create(name="liudehua")

People.objects.create(name="zhangxueyou")

b672f9d9e5d0aafc2f32c1c82331bb41.png

第四:查看表中所有的数据In [16]: p = People.objects.all()

In [17]: p.values_list()

Out[17]: [(1, 'liudehua'), (2, 'zhangxueyou')]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值