下載沒有任何問題的mysqdb http://www.codegood.com/archives/4
1創(chuàng)建一個新的app。
python manage.py startapp books
2 激活app的方法:
編輯 settings.py 文件, 找到 INSTALLED_APPS 設(shè)置。 INSTALLED_APPS 告訴 Django 項目哪些 app 處于激活狀
態(tài)。缺省情況下如下所示
INSTALLED_APPS = (
#'django.contrib.auth',
#'django.contrib.contenttypes',
#'django.contrib.sites',
'mysite.books',
)
3 python manage.py validate
validate 命令檢查你的模型的語法和邏輯是否正確。如果一切正常,你會看到 0 errors found 消息。如果有問題,它會給出非常有用的錯誤信息來幫助你 修正你的模型。
4 生成 CREATE TABLE 語句 python manage.py sqlall books
5 sqlall 命令并沒有在
數(shù)據(jù)庫中真正創(chuàng)建數(shù)據(jù)表,只是把SQL語句段打印出來。 Django提供了更簡單的 方法來執(zhí)行這些SQL語句。運(yùn)行 syncdb 命令:
python manage.py syncdb
6 a 要創(chuàng)建對象,只需 import 相應(yīng)模型類,并傳入每個字段值將其實例化
b 調(diào)用該對象的 save() 方法,將對象保存到數(shù)據(jù)庫中。Django 會在后臺執(zhí)行一條 INSERT 語句
c 使用屬性 Publisher.objects 從數(shù)據(jù)庫中獲取對象。調(diào)用 Publisher.objects.all() 獲取數(shù)據(jù)庫中所有的 Publisher 對象。此時,Django 在后臺執(zhí)行一條 SELECT SQL語句
d 添加一個方法 __str__() 到 Publisher 對象。 __str__() 方法告訴Python要怎樣把對象當(dāng)作字符串來使用
e 選擇對象:Publisher.objects.all()
f 數(shù)據(jù)過濾 Publisher.objects.filter(name="A
PRess Publishing")
g sql link的用法 : Publisher.objects.filter(name__contains="press")
h icontains (大小寫無關(guān)的 LIKE ), startswith 和 endswith , 還有 range (SQL BETWEEN 查詢)
i 獲取單個對象 Publisher.objects.get(name="Apress Publishing")
j 數(shù)據(jù)排序Publisher.objects.order_by("name")
k 要用 order_by() 顯得有點啰嗦。 大多數(shù)時間你通常只會對某些 字段進(jìn)行排序以指定模型的缺省排序方式 ordering = ["name"] 告訴Django如果沒有顯示提供 order_by() , 就缺省按名稱排序
class Publisher(models.Model):
pass
class Meta:
ordering = ["name"]
m 限制返回的數(shù)據(jù) Publisher.objects.all()[0]
n 刪除對象
p = Publisher.objects.get(name="Addison-Wesley")
p.delete()
/////////////////////////////
5TypeError: __init__() got an unexpected key
Word argument ‘maxlength’
Django下出現(xiàn)這個錯誤,記錄一下,貌似以前的版本是應(yīng)該用maxlength,但是新版本里面使用max_length
6Error: One or more models did not validate:books.author: "headshot": To use ImageFields, you need to install the Python Ima
ging Library. Get it at http://www.pythonware.com/products/pil/ .
-->去這個網(wǎng)站把它下載下來安裝,就OK了。