python测试开发django(8)--django连接mysql

前言

Django对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。本篇以mysql为例简单介绍django连接mysql进行数据操作

Django连mysql需要安装驱动mysqlclient

mysqlclient安装

先要安装数据库驱动mysqlclient,使用pip安装就行

pip install mysqlclient

 

 django配置数据库

settings.py文件中找到DATABASES配置项,django默认连接sqllite。ENGINE:是指连接数据库驱动的名称,有以下几种情况:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
  •  django.db.backends.postgresql 连接PostgreSQL
  • django.db.backends.mysql  连接mysql
  • django.db.bacckends.sqlite3  连接sqlite
  • django.db.backends.oracle  连接oracle

这里我们连接mysql需要账户密码,也就是之前安装mysql的root用户名,和自己设置的密码,NAME是数据库的名称(数据库名称可随意命名,如,django1需要提前新建好该数据库);

注意:Django2.1不再支持MySQL5.5,必须5.6版本以上

连接配置如下:

DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'django1',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'localhost',
        'PORT':'3306',
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

 创建表,同步到mysql

类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则有CharField(相当于varchar)、DateField(相当于datetime),max_length参数限定长度。

#models.py
from django.db import models

# Create your models here.
class Django1(models.Model):
    name = models.CharField(max_length=20)

 先创建表结构,在数据库里面新建一些表;(备注:第一次执行下面的命令,无xjyn...的那一行,删除数据库,再执行一次,显示改行)

python manage.py migrate

 打开数据库,会发现多了一些表名称;xjyn_django1就是上一步新建的表;

 

 接着让Django知道我们在我们的模型有一些变更;

python manage.py makemigrations xjyn

 

 再创建xjyn这个app应用的表结构

python manage.py migrate xjyn 

 

 操作数据库

在settings.py同一目录新建一个dbtest.py文件

# coding:utf-8
from django.http import HttpResponse
from xjyn.models import Django1

#数据库操作
def dbtest(requst):
    test=Django1(name="hui")
    test.save()
    return HttpResponse("数据库xjyn_django1添加name成功!")

 urls.py配置访问地址

#helloworld/helloworld/urls.py
from django.conf.urls import url
from django.urls import re_path,path
from . import dbtest

urlpatterns=[
    url("^test/$",dbtest.dbtest),
]

 浏览器打开:http://127.0.0.1:8000/test/,访问一次,数据库里面就会新增一条数据;

 

 查看数据库xjyn_django1会新增数据;

 

  

posted on 2020-12-06 23:39  星空6  阅读(158)  评论(0编辑  收藏  举报

导航