在Django中链接MySQL数据库(Python3)

个人环境:html

     python3.6,python

     Django2.1.5,mysql

     MySQL8.0.15,sql

     win10,数据库

     PyCharm,app

    

要求:已经安装了MySQL数据库ide

1,安装pymysqlspa

Django是使用MySQLdb库来链接MySQL数据库的,。可是MySQLdb不支持Python3,因此使用pymysql代替MySQLdb。
使用pip安装,而后在项目根目录的_init_.py文件中输入:import pymysql   pymysql.install_as_MySQLdb()
 
2,新建数据库
在命令行中用root登陆MySQL,并输入:create database db_name default charset = utf8;
 
3,配置链接参数
在项目根目录的settings.py文件中的DATABASES参数中设置{NAME(库名), USER(登陆用户), PASSWORD(用户密码), HOST(主机), PORT(端口号)},并把ENGINE改成MySQL。
如图:

 

 
4,设置模型(表)
Django自带了ORM,只须要在app目录的models.py文件中定义表的字段便可(例如:name = models.CharField(max_lenght=30) ),字段定义在继承了models.Model的类中。
设置表名:在该类中添加特殊类:class Meta: db_table = 'User'。注意是在类中。
如图:注意必定要加第二行,其中ShenDeng为你的项目名。

 

 
5,同步到数据库(生成表)
1,在命令行中:python manage.py makemigrations    # 生成数据库同步脚本。  # 在这一步可能会报错,解决方法在下面第6步。
2,在命令行中:python manage.py migrate   # 同步数据库。
 
6,错误(拒绝访问):pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost')
错误缘由:因为MySQL的root用户默认只能由本地主机(即: localhost)访问,因此经过pymysql远程访问时会拒绝访问。
解决方法1:更改root用户的密码认证方式。在cmd中登陆MySQL,并输入:alter user 'root'@'localhost' identified with mysql_native_password by 123456;
解决方法2:受权root用户远程登陆。grant all on *.* to 'root'@'%' identified by 123456;
上面两种方法均可以,完成后重复步骤5便可。
 

 7,验证是否成功( 在cmd中):命令行

       1,用root登陆:mysql> mysql -u root -p; 输入密码。htm

       2,查看表是否存在:mysql> use <数据库名>;

                                       mysql> show tables;

      ps: 通常会有不少表,其余的暂时不用管,找到咱们要建的表就好了!

8,往表中添加数据:

   新建一个.py文件输入如下内容而后单独运行就能够了。(User为继承了models.Model的类)

 

原文出处:https://www.cnblogs.com/shendeng23/p/10433269.html

相关文章
相关标签/搜索