• 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会新增数据;

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    常见的HTTP状态码(HTTP Status Code)说明
    eclipse tomcat maven热部署
    log4j.properties 详解与配置步骤
    js玩命加载……
    git学习
    vim学习笔记
    Android中在不同activity中进行自定义广播的解析
    Android中本地广播的实现
    Android中自定义广播的实现
    Android中获得网络状况的实现
  • 原文地址:https://www.cnblogs.com/canglongdao/p/14095028.html
Copyright © 2020-2023  润新知