日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Django开发基础----操作数据库

發(fā)布時(shí)間:2023/12/18 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django开发基础----操作数据库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Django中對(duì)數(shù)據(jù)庫的操作是由Models來完成的

Models是什么?

通常,一個(gè)Model對(duì)應(yīng)數(shù)據(jù)庫的一張數(shù)據(jù)表

Django中Models以的形式出現(xiàn)

它包含了一些基本字段以及數(shù)據(jù)的一些行為

所以,在Django中所有對(duì)數(shù)據(jù)庫的操作,就是對(duì)Models中的類以及類的對(duì)象的操作,不需要寫任何SQL語句來和數(shù)據(jù)庫進(jìn)行直接的交互。

編寫Models步驟:

1、在應(yīng)用根目錄下創(chuàng)建models.py,并引入models模塊

2、創(chuàng)建類,繼承models.Model,該類即是一張數(shù)據(jù)表

3、在類中創(chuàng)建字段

字段創(chuàng)建:

1、數(shù)據(jù)表里的字段其實(shí)就是models.py中類的屬性(變量)

例如: ? ?name = models.CharField(max_length=100) # 發(fā)布會(huì)標(biāo)題

Django中主要的數(shù)據(jù)類型:

編寫完Models,怎么把類同步到數(shù)據(jù)庫,生成數(shù)據(jù)表呢?

1、命令行中進(jìn)入manage.py的同級(jí)目錄

2、執(zhí)行 python3 manage.py makemigrations app名(sign)(可選,如果不指定應(yīng)用名,默認(rèn)是該項(xiàng)目下的所有應(yīng)用)

3、再執(zhí)行?python3 manage.py migrate,完成數(shù)據(jù)遷移

完成數(shù)據(jù)遷移后,Django會(huì)自動(dòng)在sign/migrations目錄下生成移植文件

執(zhí)行python3 manage.py sqlmigrate 應(yīng)用名 文件id(0001) 查看SQL語句.

一、使用MySQL數(shù)據(jù)庫:

Django 默認(rèn)使用自帶的sqlite3數(shù)據(jù)庫,對(duì)各種數(shù)據(jù)庫提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。

Django 為這些數(shù)據(jù)庫提供了統(tǒng)一的調(diào)用API。 我們可以根據(jù)自己業(yè)務(wù)需求選擇不同的數(shù)據(jù)庫。

MySQL 是 Web 應(yīng)用中最常用的數(shù)據(jù)庫

使用MySQL數(shù)據(jù)庫步驟

1、如果使用的 Python2.x 版本,那么連接 MySQL 數(shù)據(jù)庫可以使用 MySQL-python。 但是,MySQL-python 只支持 Python2.x 版本,并在 2014 年 1 月之后就不再更新了,但這并不影響對(duì)該庫的使 用。目前 Django 默認(rèn)使用的是該驅(qū)動(dòng)。如果使用的是 Python3.x 版本的 Django,所以這里推薦使用 PyMySQL 驅(qū)動(dòng)。

命令:python3 -m pip install?PyMySQL

因?yàn)?Django 在連接 MySQL 數(shù)據(jù)庫時(shí)默認(rèn)使用的是 MySQLdb 驅(qū)動(dòng),我們現(xiàn)在安裝的是 PyMySQL 驅(qū)動(dòng),如何讓 Django 通過 PyMySQL 來 連接 MySQL 數(shù)據(jù)庫呢?在.../guest/__init__.py 目錄下添加:

import pymysql

pymysql.install_as_MySQLdb()

2、setting.py文件中配置MySQL數(shù)據(jù)庫

注意:切換了數(shù)據(jù)庫后,之前 Sqlite3 數(shù)據(jù)庫里的數(shù)據(jù)并不能復(fù)制到 MySQL 中,所以需要重新進(jìn)行數(shù)據(jù)庫同步,使數(shù)據(jù)模型重新在 MySQL 數(shù)據(jù)庫中生成表。

執(zhí)行?python3 manage.py migrate

二、視圖層Views進(jìn)行數(shù)據(jù)庫的增、刪、改、查

在原項(xiàng)目中再新建一個(gè)應(yīng)用contral,記得在settings中添加此應(yīng)用

1、創(chuàng)建model表

?

2、生成相應(yīng)的表 python manage.py makemigrations python manage.py migrate? 3、admin后臺(tái)注冊(cè)表

并添加數(shù)據(jù)

對(duì)數(shù)據(jù)進(jìn)行增刪改查的代碼:
UserInfo.objects.all()
UserInfo.objects.all().values('user')? ? ? ? #只取user列
UserInfo.objects.get(id=1) ? ? ?#取出id為1的數(shù)據(jù) UserInfo.objects.all().values_list('id','user')? ? #取出id和user列,并生成一個(gè)列表 UserInfo.objects.get(user='Jia') ? 查找數(shù)據(jù) 4、配置url

5、編寫views

6.html代碼

7、成功獲取數(shù)據(jù)

增加數(shù)據(jù)

models.UserInfo.objects.create(user='tswn',pwd='12345')
或者 obj = models.UserInfo(user='tswn',pwd='12345') obj.save() 或者 dic = {'user':'tswn',pwd='12345')} models.UserInfo.objects.create(**dic)

刪除數(shù)據(jù)

改數(shù)據(jù)

UserInfo.objects.filter(user='Jia').update(pwd='520') 或者 obj =?UserInfo.objects.get(user='Jia') obj.pwd = '520' obj.save()

轉(zhuǎn)載于:https://www.cnblogs.com/ailiailan/p/8485215.html

總結(jié)

以上是生活随笔為你收集整理的Django开发基础----操作数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。