標籤:安裝 操作 mod 建立資料庫 bsp 根據 關係 右鍵 擷取
ORM操作
select * from tb where id > 1
#對應關係
models.tb.objects.filter(id__gt=1)
models.tb.objects.filter(id=1)
models.tb.objects.filter(id__lt=1)
建立類
1.DB-first:根據類自動建立資料庫表
#models.py
settings.py中要註冊app
預設產生的表名為:#app01_userinfo
from django.db import models#create your models here.class UserInfo(models.Model): #django會預設建立一個id列,自增,主鍵 #使用者名稱列,字串類型,指定長度 username = models.CharField(max_length=32) password = models.CharField(max_length=64)項目的settings->INSTALLED_APPS=[]中,添加app,:然後命令列執行:python manage.py makemigrationspython manage.py migrate #根據產生的py檔案,直接產生資料庫
View Code
項目settings.py->DATABASE={}中設定使用的資料庫:預設串連sqlite
串連mysql設定檔:
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘:‘dbname‘, ‘USER‘: ‘root‘, ‘PASSWORD‘: ‘xxx‘, ‘HOST‘: ‘‘, ‘PORT‘: ‘‘, }}View Code
***********注意***********
Django預設用Mysqldb模組串連mysql,所以會報錯,應該修改為pymysql串連
在項目的__init__.py檔案中,添加:import pymysqlpymysql.install_as_MySQLdb()
2.Code-first:根據類對資料庫表中的資料進行各種操作
一、概述
1、什麼是資料庫 ?
答:資料的倉庫,如:在ATM的樣本中我們建立了一個 db 目錄,稱其為資料庫
2、什麼是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
答:他們均是一個軟體,都有兩個主要的功能:
- a. 將資料儲存到檔案或記憶體
- b. 接收特定的命令,然後對檔案進行相應的操作
PS:如果有了以上軟體,無須自己再去建立檔案和檔案夾,而是直接傳遞 命令 給上述軟體,讓其來進行檔案操作,他們統稱為資料庫管理系統(DBMS,Database Management System)
3、什麼是SQL ?
答:上述提到MySQL等軟體可以接受命令,並做出相應的操作,由於命令中可以包含刪除檔案、擷取檔案內容等眾多操作,對於編寫的命令就是是SQL語句。SQL????????,是????????????????????????????結構化語言(Structured Query Language????????)的縮寫,SQL????????????????????????????????是一種專門用來與資料庫通訊的語言。
二、下載安裝
MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關聯式資料庫管理系統) 應用軟體之一。
想要使用MySQL來儲存並操作資料,則需要做幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL用戶端
b. 【用戶端】串連【服務端】
c. 【用戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
下載 http://dev.mysql.com/downloads/mysql/安裝 windows: 點點點 Linux: yum install mysql-server Mac: 點點點
Window版本
1、下載
MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/
View Code
2、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的檔案夾移動到指定目錄,如:C:\mysql-5.7.16-winx64
3、初始化
MySQL解壓後的 bin 目錄下有一大堆的可執行檔,執行如下命令初始化資料:
cd c:\mysql-5.7.16-winx64\bin mysqld --initialize-insecure
View Code
4、啟動MySQL服務
執行命令從而啟動MySQL服務
# 進入可執行檔目錄cd c:\mysql-5.7.16-winx64\bin # 啟動MySQL服務mysqld
View Code
5、啟動MySQL用戶端並串連MySQL服務
由於初始化時使用的【mysqld --initialize-insecure】命令,其預設未給root賬戶設定密碼
# 進入可執行檔目錄cd c:\mysql-5.7.16-winx64\bin # 串連MySQL伺服器mysql -u root -p # 提示請輸入密碼,直接斷行符號
輸入斷行符號,見表示安裝成功:
到此為止,MySQL服務端已經安裝成功並且用戶端已經可以串連上,以後再操作MySQL時,只需要重複上述4、5步驟即可。但是,在4、5步驟中重複的進入可執行檔目錄比較繁瑣,如想日後操作簡便,可以做如下操作。
a. 添加環境變數
將MySQL可執行檔添加到環境變數中,從而執行執行命令即可
【右鍵電腦】--》【屬性】--》【進階系統設定】--》【進階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 如:C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin
如此一來,以後再啟動服務並串連時,僅需:
# 啟動MySQL服務,在終端輸入mysqld # 串連MySQL服務,在終端輸入:mysql -u root -p
b. 將MySQL服務製作成windows服務
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題:
# 製作MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:
# 啟動MySQL服務net start mysql # 關閉MySQL服務net stop mysql
Linux版本
安裝:
| 1 |
yum install mysql-server |
服務端啟動
用戶端串連
| 1234567 |
串連: mysql -h host -u user -p 常見錯誤: ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.退出: QUIT 或者 Control+D |
三、資料庫操作
1、顯示資料庫
預設資料庫:
mysql - 使用者權限相關資料
test - 用於使用者測試資料
information_schema - MySQL本身架構相關資料
2、建立資料庫
| 12345 |
# utf-8CREATE DATABASE 資料庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # gbkCREATE DATABASE 資料庫名稱 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; |
3、使用資料庫
顯示當前使用的資料庫中所有表:SHOW TABLES;
4、使用者管理
| 12345678910 |
建立使用者 create user ‘使用者名稱‘@‘IP地址‘ identified by ‘密碼‘;刪除使用者 drop user ‘使用者名稱‘@‘IP地址‘;修改使用者 rename user ‘使用者名稱‘@‘IP地址‘; to ‘新使用者名稱‘@‘IP地址‘;;修改密碼 set password for ‘使用者名稱‘@‘IP地址‘ = Password(‘新密碼‘) PS:使用者權限相關資料儲存在mysql資料庫的user表中,所以也可以直接對其進行操作(不建議) |
5、授權管理
| 123 |
show grants for ‘使用者‘@‘IP地址‘ -- 查看許可權grant 許可權 on 資料庫.表 to ‘使用者‘@‘IP地址‘ -- 授權revoke 許可權 on 資料庫.表 from ‘使用者‘@‘IP地址‘ -- 取消許可權 |
Django ORM------Mysql