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

摘要:
前言Django为各种数据库提供了良好的支持,包括PostgreSQL、MySQL、SQLite和Oracle。ENGINE:指连接数据库驱动程序的名称。有几种情况:DATABASES={'default':{'ENGINE‘:‘django.db.backends.sqlite3‘,‘NAME‘:os.path.coin,}django。数据库。后端。postgresql连接PostgreSQLdjango。数据库。后端。mysqlConnect mysqldjango。数据库。后端。sqlite3连接sqlitedjango。数据库。后端Oracle连接到Oracle。这里,我们需要一个帐户密码来连接MySQL。也就是说,MySQL安装的根用户名和我们自己设置的密码。NAME是数据库的名称;注意:Django 2.1不再支持MySQL 5.5。5.6版以上的连接配置必须如下:DATABASES={'default':{'ENGINE':'django.db.backeends.mysql','NAME':'django1','USER':'root','PASSWORD':'123456','HOST':'localhost','PORT':'3306',#'ENGINE':'django.db.backends.sqlite3',#'NAME';os.path.jn,}}创建一个表并将其同步到mysql类名,表示数据库表名称并继承模型Model,类中的字段表示数据表中的字段,数据类型包括CharField、DateField、max_length参数限制长度。

前言

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

Django连mysql需要安装驱动mysqlclient

mysqlclient安装

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

pip install mysqlclient

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

 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

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

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

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

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

python manage.py makemigrations xjyn

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

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

python manage.py migrate xjyn 

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

 操作数据库

在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/,访问一次,数据库里面就会新增一条数据;

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

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

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

  

免责声明:文章转载自《python测试开发django(8)--django连接mysql》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【DevExpress】2、控制GridView的分组需要用到的属性JS固定边栏滚动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle DBA 必须掌握的 查询脚本:

Oracle  DBA 必须掌握的 查询脚本: 0:启动与关闭                        orcle 数据库的启动与关闭 1:连接数据库   2:数据库开启状态的实现步骤:       2-1:启动数据库           2-1-1正常启动数据库: SQL> startup                       特点:...

Python基础:数值(布尔型、整型、长整型、浮点型、复数)

一、概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool)、整型(int)、长整型(long)、浮点型(float)和复数(complex)。 数值类型支持的主要操作如下: 操作 说明 bool int long float complex x ** y 指数运算 √ √ √ √ √ +x 符号不变 √...

ORACLE 11G 闪回技术(闪回数据库、表、回收站)

ORACLE 11G 闪回技术(闪回数据库、表、回收站) weixin_45389319分类专栏: 数据库 文章标签: 数据库版权闪回数据库就是将数据库回退到过去的一个时间点或scn上,从而实现数据库的恢复,这种恢复不需要通过备份,所以更方便、更快速。该功能不基于撤销数据,而是基于闪回日志。 语法flashback 【standby】 database d...

【ogg三】日常运维篇:清理归档日志,ogg进程注册服务,定期备份数据库

清理归档日志 ogg使用需要开启归档日志,归档日志会随着时间的推移逐渐增多,占满空间,导致应用无法正常运行。如果归档日志满了会报错 ORA-00257:archiver error解决办法 检查flash recovery area的使用情况 select * from V$FLASH_RECOVERY_AREA_USAGE; 解决办法:使用rman...

NACOS集群搭建遇到的问题

搭建NACOS官网教程: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 这里说的很详细了。也有中文的。我就记录一下在搭建集群的时候遇到的问题 详情见:自己的有道云笔记,一下只是借鉴的问题处理方式 1.数据库连接问题:     nacos默认的数据库驱动是5.1.? 如果你的mysql版本...

spring security 控制用户信息用户加密 缓存用户信息

1.MD5加密 任何一个正式的企业应用中,都不会在数据库中使用明文来保存密码的,我们在之前的章节中都是为了方便起见没有对数据库中的用户密码进行加密,这在实际应用中是极为幼稚的做法。可以想象一下,只要有人进入数据库就可以看到所有人的密码,这是一件多么恐怖的事情,为此我们至少要对密码进行加密,这样即使数据库被攻破,也可以保证用户密码的安全。 最常用的方法是使用...