Python Django网站开发(四):数据库的连接配置

365 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

首先确定Python Django的环境已经配置好,参考juejin.cn/post/708566…
本文主要是进行一个测试,了解数据库配置的基本过程,后续会再创建项目相关的数据库。

  1. 打开virtualBox虚拟机,进入终端,输入命令mysql -u admin -p,然后输入用户密码,进入到mysql数据库。

1.进入mysql数据库.png

  1. 输入命令show databases; 查看当前数据库。注意在数据库中输入指令要加上分号结尾
show databases;
  1. 创建数据库:create database 数据库名字;
create database test;
  1. 在pycharm的项目中找到settings.py文件,在DATABASES字段中进行配置,与创建的数据库进行关联。
DATABASES = {
    'default': {
        # 1)配置数据库,默认的配置先注释掉
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        # 2)添加mysql的搜索引擎
        'ENGINE':"django.db.backends.mysql", #搜索引擎:mysql
        'NAME':"test",  #在mysql中创建的数据库名字
        'USER':"admin", #用户名默认用的都是admin的用户
        'PASSWORD':'123456', #用户密码,自己创建虚拟机时设置的
        'HOST':"127.0.0.1", #ip:如果时远程连接写远程ip,这里做本地测试填127.0.0.1
        'PORT':3306, #默认端口
    }
}
  1. exit;命令退出mysql数据库,切换到自己项目的虚拟环境中,下载PyMySQL模块。pip list可以查看下载的第三方库。
pip install pymysql;
  1. 在项目根目录下的文件夹中找到__init__.py文件,导入pymysql,输入以下代码,然后启动项目,成功表示数据库的基本连接完成。
import pymysql
# 建立数据库连接
pymysql.install_as_MySQLdb()

7.创建一个新的django应用testApp,配置好基本路由参数,具体参考 https://juejin.cn/post/7086095302804897828

  1. 打开testapp下的models.py文件,输入以下代码。
from django.db import models
# 1.创建数据表: class 表名()
class Test(models.Model): #继承models.Model 继承父类 实现模型类准备工作
    id = models.AutoField(primary_key=True) #id字段 主键自增约束
    name = models.CharField(max_length=20,null=True) #设置name最长为20字节,非空约束
    age = models.IntegerField() #int类型
    sex = models.CharField(max_length=10)
  1. 进行映射。 点击Tools——>run manage.py——>makemigrations testapp(新创建的应用名)。然后右击testapp,可以将映射记录从虚拟机中下载下来:Deployment——>download from cdproject。这时候testapp下的migrations文件夹里就会生成一个0001_initial.py的文件。

  2. 进行迁移。在没有迁移之前,数据库中是不会创建数据表的。再次进入mysql数据库,use test;命令使用test这个数据库,此时查看数据库中的表是空的。点击Tools——>run manage.py——>输入migrate testapp,显示ok表示迁移成功。此时在mysql数据中输入show tables,可以查看到两个表,一个表名为testapp_test的表(就是我们创建的),还有一个就是django_migrations,存放我们的映射记录。 在这里插入图片描述 在这里插入图片描述

  3. 可以自定义表名。在models.py文件中输入以下代码:把自定义表名部分加上去即可。

from django.db import models
# 1.创建数据表: class 表名()
class Test(models.Model): #继承models.Model 继承父类 实现模型类准备工作
    id = models.AutoField(primary_key=True) #id字段 主键自增约束
    name = models.CharField(max_length=20,null=True) #设置name最长为20字节,非空约束
    age = models.IntegerField() #int类型
    sex = models.CharField(max_length=10)

    # 自定义表名
    class Meta: #Meta类名不要改
        db_table = "Test"

  1. 再重新进行数据映射和迁移。点击Tools——>run manage.py——>输入makemigrations testapp,进行映射。再输入migrate testapp进行迁移,在mysql数据库中查看表名,已经变成自己定义的Test。

13.最后就可以在testapp文件夹中的views.py文件中编写数据的增删改查操作了。