orm连接mysql_Django---Django通过ORM连接数据库

前面介绍了Django平台的数据交互,这些数据都是在本地存放着,修改内容或者重新启动服务,数据就消失了,如果我们把数据存放在数据库中,不就保存了吗?

ORM

在写Django数据库之间,我们首先了解下什么是ORM,ORM就是对象关系映射,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 (百度百科)

说这么多,不知道大家理解不理解,其实就是通过实例对象的方法帮助我们写sql语句从而方便我们。(其实就是通过你写的代码,然后帮你写SQL语句)

其实我们今天所写的Django的数据库其实就是通过ORM来实现的。

3eb155c5b983bb484d4fb22007c012d9.png

Django数据库

Django中自带的也有数据库(sqlite3),自带的轻量级数据库sqlite3,已经完全够了,当然大家都很数据Mysql数据库,我们也可以通过Django连接Mysql数据库

连接Mysql数据库

在文件settings,py文件下中找到以下配置信息,该信息为连接默认数据库(sqlite3)

#连接数据库

DATABASES ={'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

如果想要连接Mysql数据库,我们可以进行修改成以下参数

#配置MYsql数据库

DATABASES ={'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test', #数据库名称,

'HOST': 'localhost', #主机地址

'USER': 'root', #数据库用户

'PASSWORD': '821006052', #密码

'PORT': 3306 #mysql的端口默认3306

}

}

数据库已经连接成功了。但是还需要安装mysql插件mysqlclient

pip install mysqlclient

b7461d9491cbfe0016edea67b1b2854a.png

操作数据库

在文件models.py下创建表名以及表字段

# model.py

#创建表名已经表字段

from django.db importmodels#class名代表表名,models.Model固定写法

classUser(models.Model):#username,password 表示创建字段名,长度为32

username = models.CharField(max_length=32)

password= models.CharField(max_length=32)

打开cmd,跳转到项目目录下执行以下命令,同步数据库

#同步数据库python manage.py makemigrations

2ae3dd1033400df196bd5a213643e94c.png

这个时候会看到项目中的migrations中自动生成了一个文件 0001_initial.py, 这个时候我们继续执行命令

# 创建数据库表

python manage.py migrate

c6f86be632ec39cc1314d9033d3e0d5c.png

这个时候我们都已经把数据库全部创建完成了。

074e257121cf022c753090c3cf3f6930.png

这个时候会创建一些Django自带的表,如果不需要的话我们可以在sttings.py文件中进行进行屏幕

INSTALLED_APPS =['django.contrib.admin', #admin管理后台站点

'django.contrib.auth', #身份认证系统

'django.contrib.contenttypes', #内容类型框架

'django.contrib.sessions', #会话框架

'django.contrib.messages', #消息框架

'django.contrib.staticfiles', #静态文件管理框架

'Djtest', #项目应用

]

migrations

创建好后数据库,你会发现Django项目中重新创建了一个文件migrations,里面的内容就是数据库的一些操作

52be7d45399278bb7863ffde5c392392.png

注:

如果一不小心删除了migrations文件的数据,那么怎么办?

1、删除migrations下除了__int__.py的文件

2、重新执行同步数据库的命令

#同步数据库

python manage.py makemigrations#创建数据库

python manage.py migrate

添加数据到数据库

前面工作已经全部完成了,我们直接开始编写代码写入数据库中,这里还是使用上一篇数据交互的代码完成。我们直接在视图中进行修改代码

#views.py

defindex(request):if request.method == 'POST':

username= request.POST.get('username')

password= request.POST.get('password')#将数据保存到数据库

models.User.objects.create(username=username,password=password)return render(request, 'index.html', {'data':username})

这个地方需要注意前面写的html接收的内容,然后再返回给用户浏览器,这里修改了index.html文件

# index.html

安静博客乐园
欢迎您,{{data}}

最后工作了,启动Django服务,进入到对应的地址,输入用户名和密码,点击提交

6be79c88011e0cc0e3b5800888c02990.png

提交过后,来到我们的数据库中,进行查看,数据是否提交(我这里输入多次不同的数据)

f10c238853d60b0953e4fe9bc6566fd3.png可以发现数据已经全部都存到数据库中了。这样就可以把提交过的数据全部都保存在数据库中,然而不会重启服务器导致数据丢失了

其他数据库连接信息配置

#连接 PostgreSQL

django.db.backends.postgresql#连接 mysql

django.db.backends.mysql#连接 sqlite

django.db.backends.sqlite3#连接 oracle

django.db.backends.oracle

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值