Django ORM------Mysql

來源:互聯網
上載者:User

標籤:安裝   操作   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  

服務端啟動

1 mysql.server start

用戶端串連

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、顯示資料庫

1 SHOW DATABASES;

預設資料庫:
  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、使用資料庫

1 USE db_name;

顯示當前使用的資料庫中所有表: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.