Admin和Models

二镀裤、Models


1.Django Model

每一個Django Model都繼承自django.db.models.Model #一個包轿亮,不用在意

在Model當中每一個屬性attribute都代表一個database field?

# Model.后面的即為屬性?

?ex:name=models.CharField(max_length=100) ? CharField即為屬性

review: python中的類

通過Django Model API可以執(zhí)行數(shù)據(jù)庫的增刪改查, 而不需要寫一些數(shù)據(jù)庫的查詢語句

2.設(shè)置數(shù)據(jù)庫

Django項目建成后, 默認設(shè)置了使用SQLite數(shù)據(jù)庫, 在my_blog/my_blog/settings.py中可以查看和修改數(shù)據(jù)庫設(shè)置:

DATABASES = {'default': {'ENGINE':'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR,'db.sqlite3'),? ? }}

還可以設(shè)置其他數(shù)據(jù)庫, 如MySQL, PostgreSQL, 現(xiàn)在為了簡單, 使用默認數(shù)據(jù)庫設(shè)置

# os.path.join() 將括號里的參數(shù)合并成目錄

3.創(chuàng)建models

在my_blog/article/models.py下編寫如下程序:

其中__str__(self)函數(shù)Article對象要怎么表示自己, 一般系統(tǒng)默認使用來表示對象, 通過這個函數(shù)可以告訴系統(tǒng)使用title字段來表示這個對象

CharField 用于存儲字符串, max_length設(shè)置最大長度

TextField 用于存儲大量文本

DateTimeField 用于存儲時間, auto_now_add設(shè)置True表示自動設(shè)置對象增加時間

有了這些代碼肢扯,Django就能夠自動完成以下兩個功能:

為該應用創(chuàng)建數(shù)據(jù)庫表(CREATE TABLE語句)芦倒。

為Question對象和Choice對象創(chuàng)建一個訪問數(shù)據(jù)庫的python API轰豆。

4.同步數(shù)據(jù)庫

$ python manage.py migrate #命令行運行該命令

因為我們已經(jīng)執(zhí)行過該命令會出現(xiàn)如下提示

Operations to perform:

Apply all migrations: admin, contenttypes, sessions, auth

Running migrations:

No migrations to apply.

Your models have changes that arenotyet reflectedina migration,andso won't be applied.

Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

那么現(xiàn)在需要執(zhí)行下面的命令

$ python manage.py makemigrations #得到如下提示

Migrationsfor'article':0001_initial.py:- Create model Article

這是通過運行makemigrations告訴Django,已經(jīng)對模型做了一些更改(在這個例子中弓千,你創(chuàng)建了一個新的模型)并且會將這些更改記錄為遷移文件衡便。

遷移是 Django 如何儲存模型的變化(以及您的數(shù)據(jù)庫模式),它們只是磁盤上的文件洋访。如果愿意镣陕,你可以閱讀這些為新模型建立的文件;這個遷移文件就是polls/migrations/0001_initial.py捌显。不用擔心,Django不要求你在每次Django生成遷移文件之后都要閱讀這些文件总寒,但是它們被設(shè)計成可人為編輯的形式扶歪,以便你可以手工稍微修改一下Django的某些具體行為。READ MORE

有一個命令可以運行這些遷移文件并自動管理你的數(shù)據(jù)庫模式 —— 它叫做migrate

現(xiàn)在重新運行以下命令

$ python manage.py migrate#出現(xiàn)如下提示表示操作成功

Operations toperform:Apply allmigrations:auth, sessions, admin, article, contenttypes

Running migrations:Applying article.0001_initial... OK

migrate命令按照app順序建立或者更新數(shù)據(jù)庫, 將models.py與數(shù)據(jù)庫同步


遷移功能非常強大摄闸,可以讓你在開發(fā)過程中不斷修改你的模型而不用刪除數(shù)據(jù)庫或者表然后再重新生成一個新的 —— 它專注于升級你的數(shù)據(jù)庫且不丟失數(shù)據(jù)善镰。我們將在本教程的后續(xù)章節(jié)對遷移進行深入地講解,但是現(xiàn)在年枕,請記住實現(xiàn)模型變更的三個步驟:

修改你的模型(在models.py文件中)炫欺。

運行pythonmanage.pymakemigrations,為這些修改創(chuàng)建遷移文件

運行pythonmanage.pymigrate熏兄,將這些改變更新到數(shù)據(jù)庫中品洛。

5.Django Shell

現(xiàn)在我們進入Django中的交互式shell來進行數(shù)據(jù)庫的增刪改查等操作

$ python manage.py shell

Python3.4.2(v3.4.2:ab2c023a9432, Oct52014,20:42:22)

[GCC4.2.1(Apple Inc. build5666) (dot3)] on darwin

Type"help","copyright","credits"or"license"formore information.

(InteractiveConsole)>>>

這里進入Django的shell和python內(nèi)置的shell是非常類似的



當然還有更多的API, 可以查看官方文檔,退出只需要輸入quit()

一般系統(tǒng)默認使用<Article: Article object>來表示對象

三摩桶、Admin

1.Admin簡介

Django有一個優(yōu)秀的特性, 內(nèi)置了Django admin后臺管理界面, 方便管理者進行添加和刪除網(wǎng)站的內(nèi)容.

2.設(shè)置Admin

新建的項目系統(tǒng)已經(jīng)為我們設(shè)置好了后臺管理功能

可以在my_blog/my_blog/settings.py中查看

INSTALLED_APPS= (

'django.contrib.admin',#默認添加后臺管理功能

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'article')

同時也已經(jīng)添加了進入后臺管理的url, 可以在my_blog/my_blog/urls.py中查看

# -*- coding: utf-8 -*-

from django.conf.urls import url

from django.contrib import admin

urlpatterns = [# Examples:

# url(r'^$', 'my_blog.views.home', name='home'),

# url(r'^blog/', include('blog.urls')),url(r'^admin/', admin.site.urls),

#可以使用設(shè)置好的url進入網(wǎng)站后臺]

3.創(chuàng)建超級用戶

使用如下命令賬號創(chuàng)建超級用戶(如果使用了python manage.py syncdb會要求你創(chuàng)建一個超級用戶, 該命令已經(jīng)過時, 不再推薦使用)

$ python manage.py createsuperuser

Username (leave blank touse'andrew_liu'): root

Email address:Password:Password(again):

Superuser created successfully.

輸入用戶名, 郵箱, 密碼就能夠創(chuàng)建一個超級用戶

啟動應用:

$ python manage.py runserverlocalhost:9000

現(xiàn)在可以在瀏覽器中輸入localhost:9000/admin輸入賬戶和密碼進入后臺管理, 如下:


登陸進入



讓poll應用在管理站點中可編輯?

但我們的poll應用在哪兒桥状?它沒有顯示在管理站點的首頁面上。

只需要做一件事:我們需要告訴管理站點Question對象要有一個管理界面硝清。

但是你會發(fā)現(xiàn)并沒有數(shù)據(jù)庫信息的增加和刪除, 現(xiàn)在我們在my_blog/article/admin.py中增加代碼:

from django.contrib import admin

from article.models import Article

# Register your models here.

admin.site.register(Article)

保存后, 再次刷新頁面,localhost:9000/admin


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辅斟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芦拿,更是在濱河造成了極大的恐慌士飒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔗崎,死亡現(xiàn)場離奇詭異酵幕,居然都是意外死亡,警方通過查閱死者的電腦和手機缓苛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門裙盾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事番官÷辏” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵徘熔,是天一觀的道長门躯。 經(jīng)常有香客問我,道長酷师,這世上最難降的妖魔是什么讶凉? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮山孔,結(jié)果婚禮上懂讯,老公的妹妹穿的比我還像新娘。我一直安慰自己台颠,他們只是感情好褐望,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著串前,像睡著了一般瘫里。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荡碾,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天谨读,我揣著相機與錄音,去河邊找鬼坛吁。 笑死劳殖,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拨脉。 我是一名探鬼主播闷尿,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼女坑!你這毒婦竟也來了填具?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤匆骗,失蹤者是張志新(化名)和其女友劉穎劳景,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碉就,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡盟广,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓮钥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筋量。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡烹吵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桨武,到底是詐尸還是另有隱情肋拔,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布呀酸,位于F島的核電站凉蜂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏性誉。R本人自食惡果不足惜窿吩,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望错览。 院中可真熱鬧纫雁,春花似錦、人聲如沸倾哺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悼粮。三九已至闲勺,卻和暖如春曾棕,著一層夾襖步出監(jiān)牢的瞬間扣猫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工翘地, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留申尤,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓衙耕,卻偏偏與公主長得像昧穿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子橙喘,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容