Django的mysql配置

Django的mysql配置

目录python

Django的ORM框架简介:mysql

Django下配置使用mysql数据库:web

1.首先,安装pymysql(此模块的做用是用python来操做mysql)sql

2.建立本身须要链接的数据库。数据库

3.pycharm链接主机上的数据库(此过程省略)django

4. 修改项目中init.py 加入以下内容来提供pymysql引擎的支持编程

5.在setting.py文件中配置数据库windows

6.至此,mysql配置完成。启动项目python manage.py runserver 后端


DjangoORM框架简介:

ORM即对象关系映射,经过类和对象对数据库进行操做,从而避免了直接使用SQL语句,经过面向对象编程思想,极大程度上方便了用户操做数据库,避免了繁琐的SQL语句。oracle

 

我是用的是pycharm直接链接Windows上的mysql数据库。用Django3.0版本

 

Django下配置使用mysql数据库:

1.首先,安装pymysql(此模块的做用是用python来操做mysql)

Pip install pymysql

 

2.建立本身须要链接的数据库。

create database mywebdb default charset utf8 collate utf8_general_ci;       #这里我建立了一个名为mywebdb的数据库。

 

3.pycharm链接主机上的数据库(此过程省略)

 

4. 修改项目中init.py 加入以下内容来提供pymysql引擎的支持

 

5.在setting.py文件中配置数据库

找到DATABASES选项,将自带的sqlite3数据表注释,添加mysql数据库选项。这里的选项能够不用刻意记住,须要知道的是有这个选项就能够。

 

 具体参数了解:

1ENGINE定数据库的后端引擎

'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
'django.db.backends.postgresql'

  • mysql引擎以下:
  • 'django.db.backends.mysql'

2NAME

  • 指定要链接的数据库的名称
  • 'NAME': 'mywebdb'

3USER

  • 指定登陆到数据库的用户名
  • 'USER':'root'

4PASSWORD

  • 接数据库时使用的密码。
  • 'PASSWORD':'123456'

5HOST

  • 链接数据库时使用哪一个主机。
  • 'HOST':'127.0.0.1'

6PORT

  • 链接数据库时使用的端口。
  • 'PORT':'3306'

 

6.至此,mysql配置完成。启动项目python manage.py runserver

 


错误处理:

坑一:

Django3.0/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

解决办法:

#在这里,直接在pycharm报错的提示中找到这个base.py文件,注释掉如下部分(3五、36行)

if version < (1, 3, 3):

     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

 

 坑二:

我在注释上面几行后,从新运行项目,pycharm提示

following errors occurred on attempt to save files和Unable to save settings: Failed和Cannot Save Files

提示显示不能保存文件,这里的缘由在于pycharm

Pycharm --->setting取消下面的选项

 

坑三:

取消后发现依然提示错误,此次提示的错误时文件“拒绝访问”。

看到这样的提示第一时间想到的是权限问题,因此我修改了windows上base.py的文件权限,修改权限后,base.py文件能够被修改。

 

坑四:

修改base.py文件后运行项目又报如下错误:

AttributeError: ‘str’ object has no attribute ‘decode’

#经过错误提示找到operations.py文件,将decode改成encode

if query is not None:
    query = query.decode(errors='replace')
return query
#改成
if query is not None:
    query = query.encode(errors='replace')
return query
相关文章
相关标签/搜索