Django链接mysql

昨天刚刚看了下Django的教程,决定把数据库改成mysql,嗯~原本以为挺简单的改个引擎就行。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'test',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'127.0.0.1',
        'PORT':'3306'
    }
}

在改完settings.py后开开心心的执行python3 manage.py runserver
等待服务启动中.......
咦报错。。。。

raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'

仔细一看哦原来是只要安装一下mysqldb这个扩展就好
于是乎 pii3 install mysqldb
应该可以完成了吧~等待安装......
yiyelo又报错

 error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).

好吧,继续百度要安装这个。。。。要安装那个。。。。总而言之就是一直安装别的东西,然后捣鼓了4,5个小时还没弄出来


进入正题

在搜索中发现原来python3已经用pymysql代替了mysqldb~
bow!bow!bow!内心既开心又奔溃,一脸黑线~

Django链接mysql步骤:

  • 先检验有没有安装pymysql包,即import pymysql,如果导入失败的话用pip install pymysql安装
  • 修改settings.py里的DATABASES字段:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'test',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'127.0.0.1',
        'PORT':'3306'
    }
}
  • 很关键的一步,在项目的init.py文件下加入如下语句:
import pymysql
pymysql.install_as_MySQLdb()
  • 使用python manage.py runserver运行服务器成功

使用mysql

数据迁移

  • 在models.py下创建好model
class User(models.Model):
    class Meta:
        db_table = 'usertest'
    id = models.IntegerField(db_column='UID', primary_key=True)
    userName = models.CharField(max_length=255, db_column='username', blank=False)
    passWord = models.CharField(max_length=255, db_column='password', blank=False)
    cid = models.IntegerField( db_column='CID', blank=False)

对应关系,一个表对应一个类,表中的字段为类的属性,db_table为表名。
User是在django中操作的句柄

  • 执行python3 manage.py makemigrations app名(可选)生成迁移文件

添加了app名则只对该app生成迁移文件,默认全部

  • 可执行python manage.py sqlmigrate blog 0001查看生成的msyql语句

0001是生成迁移文件的编号,对应各自app的migrations目录下的.py文件

  • 执行python3 manage.py migrate进行迁移操作

查找数据

单表查询:
Django链接mysql_第1张图片
单表查询例子

总结

写的不是很好,希望可以帮助到大家,如有错误欢迎在评论区指出
接下来感谢两位大神给我灵感,附上他们文章的链接
http://blog.csdn.net/it_dream_er/article/details/52093362
http://blog.csdn.net/winsonyuan/article/details/51500122

你可能感兴趣的:(Django链接mysql)