被解放的姜戈02 莊園疑雲

2021-06-26 03:37:51 字數 1747 閱讀 9113

資料庫是一所大莊園,藏著各種寶貝。乙個沒有資料庫的**,所能提供的功能會非常有限。

為了找到心愛的人,姜戈決定一探這神秘的糖果莊園。

連線資料庫

django為多種資料庫後台提供了統一的呼叫api。根據需求不同,django可以選擇不同的資料庫後台。mysql算是最常用的資料庫。我們這裡將django和mysql連線。

在linux終端下啟動mysql:

$mysql -u root -p

在mysql中創立django專案的資料庫:

mysql> create database villa default charset=utf8;

這裡使用utf8作為預設字符集,以便支援中文。

在mysql中為django專案創立使用者,並授予相關許可權:

mysql> grant select, insert, update, delete, create, drop, index, alter, create temporary tables, lock tables on villa.* to 'vamei'@'localhost' identified by 'vameiisgood';

在settings.py中,將databases物件更改為:

databases = {

'default': {

'engine': 'django.db.backends.mysql',

'name': 'villa',

'user': 'vamei',

'password': 'vameiisgood',

'host':'localhost',

'port':'3306',

後台型別為mysql。上面包含資料庫名稱和使用者的資訊,它們與mysql中對應資料庫和使用者的設定相同。django根據這一設定,與mysql中相應的資料庫和使用者連線起來。此後,django就可以在資料庫中讀寫了。

姜戈略一遲疑,旋即走入了莊園的大門。

創立模型

mysql是關係型資料庫。但在django的幫助下,我們不用直接編寫sql語句。django將關係型的表(table)轉換成為乙個類(class)。而每個記錄(record)是該類下的乙個物件(object)。我們可以使用基於物件的方法,來操縱關係型的mysql資料庫。

在傳統的mysql中,資料模型是表。在django下,乙個表為乙個類。表的每一列是該類的乙個屬性。在models.py中,我們建立乙個只有一列的表,即只有乙個屬性的類:

from django.db import models

class character(models.model):

name = models.charfield(max_length=200)

def __unicode__(self):

return self.name

類character定義了資料模型,它需要繼承自models.model。在mysql中,這個類實際上是乙個表。表只有一列,為name。可以看到,name屬性是字元型別,最大長度為200。

類character有乙個__unicode__()方法,用來說明物件的字元表達方式。如果是python 3,定義__str__()方法,實現相同的功能。

命令django同步資料庫。django根據models.py中描述的資料模型,在mysql中真正的建立各個關係表:

$python manage.py syncdb

被解放的姜戈01 初試天涯

向昆汀的致敬,被解放的姜戈 django意外的和昆汀的電影重名。這大大提高了django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。下面是姜戈的初體驗。啟動計算機中的python,嘗試載入django模組。如果可以成功載入,那麼說明django已經安裝好 import django print...

被解放的姜戈01 初試天涯

本系類教程基本 部分原創以下原創作者 向昆汀的致敬,被解放的姜戈 django意外的和昆汀的電影重名。這大大提高了django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。下面是姜戈的初體驗。博主採用了pycharm5.0.3 專業版 配合python3.4.3 django1.9.5 進行開發...

被解放的姜戈08 遠走高飛

之前在單機上實現了乙個django伺服器 被解放的姜戈07 馬不停蹄 現在我們可以把這個伺服器推上乙個雲平台。這裡我選擇使用阿里雲。看著復仇的火焰燃燒,姜戈露出得意的笑容。在阿里雲官網 aliyun.com 頁面註冊阿里雲賬號。登入後選擇雲伺服器ecs,並選擇 建立例項 選擇作業系統ubuntu 1...