之前的筆記
這門課程非常有趣,會使用 Python 示例快速介紹如何在代碼中使用關係數據庫。你將學習結構化查詢語言 (SQL) 基礎知識和數據庫設計,以及將 Python 代碼與數據庫相關聯的 Python API。你還將稍加學習如何保護你的數據庫後端網絡應用,讓它不受常見安全問題的侵擾。
如果你查看了各種大型網站(從維基百科到 Reddit)的源代碼,就會發現網站某個地方使用了關係數據庫。多年來,數據庫系統(例如 PostgreSQL 和 MySQL)一直是開發者常用的工具,繼續成為存儲和操作結構化數據最強大的工具。
如果你打算繼續在全端開發領域發展,了解數據庫則是必備的背景要求。即使很多工具包以及針對你的應用代碼隱藏了數據庫詳情,能夠與數據庫互動將非常有助於設計、調試和操控應用。
學習計劃
第 1 課:數據和表格
在這節課中,你將學習如何使用關系數據庫將數據變成表格。你將學習唯一鍵的重要性和表格之間的關系。
第 2 課:SQL 元素
在這節課裡,你將開始學習大多數關系數據庫用到的結構化查詢語言 (SQL)。你將學習選擇和插入語句,二者是從數據庫中獲取數據和向數據庫中插入數據的基本操作。你將學習瀏覽表格和整合表格的運算符及語法。
第 3 課:Python DB-API
在這節課裡,你將學習如何使用 Python 代碼訪問關系數據庫。你將使用在你自己的計算機上運行的虛擬機運行 Python 網絡應用,並使該應用使用數據庫後端。然後,你將學習數據庫應用會出現的一些最常見安全風險,包括著名的 Bobby Tables。這節課還會介紹 SQL 更新和刪除語句。
第 4 課:深入學習 SQL
在這節課裡,你將學習如何設計和創建新的數據庫。你將學習正態化設計,這樣可以更輕松地使用數據庫編寫有效代碼。你還將學習如何使用 SQL 連接運算符快速連接不同表格中的數據。
第 5 課:最終項目
在此項目中,你將運用所學的 Python 和 SQL 知識構建一個基於數據庫的 Python 應用來運行競標賽。你將設計數據庫架構並編寫代碼來實現此項目的 API。
先修要求
可以閱讀和編寫基本的 Python 代碼。這門課程會用到 Python 編程練習。如果你之前沒有使用過 Python,請參閱我們的Python:編程基礎課程。
如果你能看懂下面的 Python 代碼(或許需要查閱random模塊文檔),那麼對於本課程來說你的 Python 知識足夠了。
import random
def ChooseTwice(items):
a = random.choice(items)
b = random.choice(items)
return a, b
names = ["Alice", "Bob", "Charlie", "Debra"]
(one, two) = ChooseTwice(names)
if one == two:
print "%s is happy!" % one
else:
print "%s likes %s!" % (one, two)
你可以使用命令行界面(終端)。本課程中的某些練習題需要使用 Unix 形式的命令行界面來輸入指令,運行 Python 程序和訪問目錄。
如果你已經學習了我們的如何使用 Git 和 Github課程,那麼本課程中的命令行使用水平和此課程的比較相似。
你不需要成為前端開發者。此課程的示例中的確會出現小型網絡應用和一些 HTML,但是你不需要用這些語言做出更改。
你不需要具備任何數據庫經驗。這門課程是關系數據庫的入門級介紹。
#
學習關係數據庫的貼士和技巧
Karl 將指導你學習這門課程的關系數據庫部分。在學習之前,請閱讀一些實用的虛擬機資源,這些資源將在你成為後端程序員的過程中幫助到你。
什麼是虛擬機?
在這門課程中,Karl 使用 Vagrant 創建了虛擬機。虛擬機是一種存在於本機端上的虛擬計算機系統。它具有虛擬硬體設備,就像在實際的機器上運行一樣。這種虛擬計算機系統會通過單獨的窗口運行於當前的操作系統上,對於 Vagrant 來說,通過命令行來運行。
Vagrant:你需要了解的所有知識!
Vagrant 是一個與 VirtualBox 產生接口的命令行工具,使得配置和創建虛擬機變得異常簡單。
為何要使用 Vagrant?
因為 Vagrant 操作簡單,易於使用。它符合行業標準,可以幫助你習慣於在 command line 中操作!
基本指令
下面是使用 Vagrant 時需要知道的基本指令:
- vagrant init:在當前目錄下創建新的 Vagrantfile
- vagrant up: 啟動虛擬機
- vagrant ssh: 通過 SSH 連接到虛擬機
- vagrant halt: 停止虛擬機
- vagrant destroy: 停止並刪除虛擬機(將刪除所有相關的文件)
- vagrant status:顯示虛擬機的狀態
在終端中輸入 vagrant help 即可了解詳情!
常見問題解答
雖然我們喜歡 Vagrant,因為它使用簡單。但是也會出現問題。下面是一些常見問題和相應的解決方案:
- 我在我的項目目錄下運行了 vagrant up && vagrant ssh,但是現在當我輸入 ls,我看不到任何文件!什麼情況?”
你的所有操作都是正確的,你只是沒有位於虛擬機中希望位於的文件夾中。直接輸入 cd /vagrant 即可查看你的項目文件。你也可以使用 pwd 隨時檢查你是否位於正確的位置!
“當我運行 vagrant ssh 時,為何什麼也沒發生/為何出現錯誤消息?”
檢查確保你位於正確的目錄下!通過 cd 指令進入包含你要使用的 Vagrant 文件的文件夾中。此外,確保 VirtualBox 正常運行,處於快速 vagrant 狀態!
“我使用的是 Windows 機器,當我運行任何指令時,Vagrant 似乎都卡住了,什麼情況?”
該問題通常都是許可權限造成的;也許你以管理員的身份啟動了 VirtualBox 並嘗試以普通用戶的身份使用 Vagrant,或者是相反的情況。解決辦法很簡單:關閉所有虛擬機,關閉 VirtualBox,然後以運行 Vagrant 時希望成為的身份重新打開 VirtualBox。另請參閱這篇關於如何以管理員的身份運行應用程序的文章。
“DNS 不能運行,請幫助我!”
要解決 DNS 問題,可能需要啟用代理。請參閱這個很棒的討論話題以獲取幫助!
要了解更多內容,請參閱下面的資源:
Vagrant 教程
Vagrant 功能網絡直播
官方 Vagrant 文檔
《關系數據庫入門》之如何設置 Vagrant
現在你已經深入了解虛擬機器了,我們開始學習關系數據庫吧!