about 3 years ago

p58-1

一旦我們定義了一個物件變數(實例變數),我們可以在類別內任意的位置使用self來存取他,例如我們可以為Cat類別新增一個幫貓改名字的方法和自我介紹的方法:

class Cat:
    def __init__(self, name):
        self.name = name
    def shout(self):
        print 'Meow'
    def rename(self, new_name):
        self.name = new_name
    def introduce_my_self(self):
        print 'Hello, my name is {0}!'.format(self.name)

又或者我們可以利用物件的名稱在類別的外部存取這些物件變數:

my_cat = Cat('Kitty')
print my_cat.name

其實顯而易見的,對於my_cat而言,在類別外的名稱是my_cat,在類別內我們會用self來指稱自己。

p63-1

你是否覺得將所有的代碼,包括一些基礎的運算、函式的定義和呼叫,甚至是類別的使用都放在一個檔案內,久而久之會使得檔案龐大不堪、修改不易且難以維護呢?別擔心,Python利用模組與套件的方式將程式碼的管理階層化,我們能夠將代碼按照功能切割成數個模組甚至套件,並利用匯入的方式來互相引用,使得程式碼更有章法,維護更容易!就讓我們先從了解模組與套件開始吧。

p62-1

我們將在下一章更進一步地跟讀者們介紹Python的模組與套件,

p190-1

                                                               驗證成功 --> 回傳處理過的cleaned_data
                                                              /
                                驗證成功 --> 根據clean_方法驗證
                              /                               \
原始data --> 根據欄位進行基本驗證                                驗證失敗 --> 引發例外
            (如CharField)     \
                               \
                                  驗證失敗 --> 引發例外,沒有cleaned_data                                           

p193-1

伺服器: 使用者a發出請求 ---> 伺服器給定回應 but 伺服器根本不知道有使用者a
早餐店: 客人a點餐      ---> 老闆娘做早餐   but 老闆娘根本不知道有客人a這號人物

p193-2

伺服器: 使用者a發出請求 ---> 伺服器給定回應 but 伺服器根本沒有確認發出請求的人
早餐店: 客人a點餐      ---> 老闆娘做早餐   but 老闆娘根本沒去看a,也沒想知道他是誰,雖然老闆娘知道有a這號人物

p194-1

伺服器:
使用者a發出請求1 ---> 回應1 -- > 伺服器要求使用者a提供資料(帳密)來確認是使用者a 
                           |---- 伺服器並不知道兩次請求都是使用者a發出的
使用者a發出請求2 ---> 回應2 -- > 伺服器要求使用者a提供資料(帳密)來確認是使用者a

早餐店:
客人a點了第一次餐 ---> 老闆娘做早餐 -- > 老闆娘要客人報出姓名出生年月日和身分證字號
                           |---- 老闆娘並不知道兩次點餐是同一個客人,他還要客人提供那麼多資料
客人a點了第二次餐 ---> 老闆娘做早餐 -- > 老闆娘要客人報出姓名出生年月日和身分證字號

p216-1

如下範例:

mysite/templates/registration/login.html
...
<form method="post" 
 action="{% url 'django.contrib.auth.views.login' %}?next=/index/">
    {% csrf_token %}
    <table>
        {{ form.as_table }}
    </table>

    <input type="submit" value="login" />
</form>
...

p244-1

RequestContext(
    HttpRequest,
    字典(非共有資訊),
    processors=[處理器1,處理器2,...]
)

p314-1

在這裡我們會分成兩種狀況來討論,一種是多個資料庫之間呈現彼此獨立的狀況(非同步的資料庫),一種是多個資料庫之間要進行同步的狀況,但其實不論哪一種情境,我們都只要記得使用--database的選項就能幫助我們指定資料庫。

這邊的提到了兩種同步,讀者們千萬不要搞混了,我們這節討論的是如何將模型與實際的資料庫"同步",而討論的情境又分為資料庫之間需要"同步"或各自獨立,兩個同步是完全不同的喔!

p314-2

那在實際的程式碼中,要怎麼樣來使用不同的資料庫呢?首先讓我們看到如何使用模型存取指定的資料庫:

>>> from yourapp.models import AModel
>>> a = AModel.objects.using('auth').get(id=1)

使用時加上using("資料庫名稱"),就能夠從指定的資料庫中取出我們的資料。

而想要將資料存進指定的資料庫也很簡單:

>>> a.save(using='auth')

我們在save方法後面加上using的參數就可以了。

以上的操作若無指定using則會當成要使用default資料庫。

← Django筆記 - Python的模組與套件 Python 快速入門 →
 
comments powered by Disqus