Django开发基础----操作数据库
Django中對數據庫的操作是由Models來完成的
Models是什么?
通常,一個Model對應數據庫的一張數據表
Django中Models以類的形式出現
它包含了一些基本字段以及數據的一些行為
所以,在Django中所有對數據庫的操作,就是對Models中的類以及類的對象的操作,不需要寫任何SQL語句來和數據庫進行直接的交互。
編寫Models步驟:
1、在應用根目錄下創建models.py,并引入models模塊
2、創建類,繼承models.Model,該類即是一張數據表
3、在類中創建字段
字段創建:
1、數據表里的字段其實就是models.py中類的屬性(變量)
例如: ? ?name = models.CharField(max_length=100) # 發布會標題
Django中主要的數據類型:
編寫完Models,怎么把類同步到數據庫,生成數據表呢?
1、命令行中進入manage.py的同級目錄
2、執行 python3 manage.py makemigrations app名(sign)(可選,如果不指定應用名,默認是該項目下的所有應用)
3、再執行?python3 manage.py migrate,完成數據遷移
完成數據遷移后,Django會自動在sign/migrations目錄下生成移植文件
執行python3 manage.py sqlmigrate 應用名 文件id(0001) 查看SQL語句.
一、使用MySQL數據庫:
Django 默認使用自帶的sqlite3數據庫,對各種數據庫提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。
Django 為這些數據庫提供了統一的調用API。 我們可以根據自己業務需求選擇不同的數據庫。
MySQL 是 Web 應用中最常用的數據庫
使用MySQL數據庫步驟:
1、如果使用的 Python2.x 版本,那么連接 MySQL 數據庫可以使用 MySQL-python。 但是,MySQL-python 只支持 Python2.x 版本,并在 2014 年 1 月之后就不再更新了,但這并不影響對該庫的使 用。目前 Django 默認使用的是該驅動。如果使用的是 Python3.x 版本的 Django,所以這里推薦使用 PyMySQL 驅動。
命令:python3 -m pip install?PyMySQL
因為 Django 在連接 MySQL 數據庫時默認使用的是 MySQLdb 驅動,我們現在安裝的是 PyMySQL 驅動,如何讓 Django 通過 PyMySQL 來 連接 MySQL 數據庫呢?在.../guest/__init__.py 目錄下添加:
import pymysql
pymysql.install_as_MySQLdb()
2、setting.py文件中配置MySQL數據庫
注意:切換了數據庫后,之前 Sqlite3 數據庫里的數據并不能復制到 MySQL 中,所以需要重新進行數據庫同步,使數據模型重新在 MySQL 數據庫中生成表。
執行?python3 manage.py migrate
二、視圖層Views進行數據庫的增、刪、改、查
在原項目中再新建一個應用contral,記得在settings中添加此應用
1、創建model表
?
2、生成相應的表 python manage.py makemigrations python manage.py migrate? 3、admin后臺注冊表并添加數據
對數據進行增刪改查的代碼:UserInfo.objects.all()
UserInfo.objects.all().values('user')? ? ? ? #只取user列
UserInfo.objects.get(id=1) ? ? ?#取出id為1的數據 UserInfo.objects.all().values_list('id','user')? ? #取出id和user列,并生成一個列表 UserInfo.objects.get(user='Jia') ? 查找數據 4、配置url
5、編寫views
6.html代碼
7、成功獲取數據
增加數據
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)
刪除數據
改數據
UserInfo.objects.filter(user='Jia').update(pwd='520') 或者 obj =?UserInfo.objects.get(user='Jia') obj.pwd = '520' obj.save()轉載于:https://www.cnblogs.com/ailiailan/p/8485215.html
總結
以上是生活随笔為你收集整理的Django开发基础----操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用var声明的变量 和 直接赋值并未声
- 下一篇: MySQL语言解析----1