1. 程式人生 > >Python-Django(系統自帶後臺管理)

Python-Django(系統自帶後臺管理)

django (Python Web 框架)
Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,檢視V和控制器C
我們系統環境中已經安裝了Python3.3了,Django需要繼續安裝,這裡我們採用pip安裝。
pip install django
等待安裝完了之後,在下圖位置可以找到
這裡寫圖片描述
我們django的開發,藉助idea來完成。下面就開始正兒八經程式碼了。
1.新建一個專案:
這裡寫圖片描述
記得勾選django,至於application name不需要輸入,到時候需要什麼都可以新建,一路下一步,給專案取個名字,就可以了。
2.修改專案設定
File–>Project Structure –>Facets –>Django
選定專案的根,setting檔案和manage.py檔案
這裡寫圖片描述


每當新建一個專案,比如說Hello,就會出現一個名為Hello的包和manage.py檔案,記住,manage.py在哪就是專案的根目錄在哪裡。
3.試啟動一下,
兩種方法:a.在manage.py檔案同級目錄下,輸入manage.py runserver 8000
b.在idea上執行,
這裡寫圖片描述
在網頁欄輸入http://localhost:8000,能看到這個介面就說明配置都對了。
這裡寫圖片描述
4.新建app module,快捷鍵:Ctrl+Alt+R
這裡寫圖片描述
startapp team
新建app後,專案的目錄檔案結構如圖所示:
這裡寫圖片描述
既然是MVC的框架,那就先來定義模型.
models.py

class team(models.Model):
    t_name=models.CharField("球隊名字",max_length=30,null=True)
    t_city=models.CharField("所處城市",max_length=30,null=True)

對於charfiled欄位來說,max_length是必不可少的一個引數。
然後需要在資料庫中建立相對應的表格,還是用之前的快捷鍵Ctrl+Alt+R,執行,makemigrations team
這裡寫圖片描述
才想起我們並沒有進行資料庫相關的設定。
找到主目錄的setting檔案,
1.在installed_apps里加上我們的app
‘team.apps.TeamConfig’
2.DATABASES 設定成mysql,並跟我們的資料庫連結起來(在資料庫裡新建名為NBA的資料庫)
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: “NBA”,
‘USER’:”root”,
“PASSWORD”:”123456”,
“PORT”:”3306”,
}
}
這個時候再來執行makemigrations team,可以看到生成了team\migrations\0001_initial.py,這個檔案可以通過sqlmigrate team 0001來檢視具體的sql語句,是不是我們想要的,如果確認無誤的話,就進行真正的migration了.

–》migrate
因為我們是這個專案第一次migrate,後面不加引數的話,會自動生成installed app裡所有載入模組的資料表格,一些系統自帶的模組也會被生成。
再去資料庫中檢視,可以看到
這裡寫圖片描述
team表格中,會自動生成主鍵ID,以及我們設定的t_name和t_city
3.再把這個models註冊到django自帶的管理系統上,就可以啦。
admin.py
admin.site.register(models.team)

4.然後建立一個超級使用者,去網站上看看效果
這裡寫圖片描述
新建,
這裡寫圖片描述
這裡前面的球隊名字,和所處城市,就是我們之前CharFiled第一個引數決定的。
新建完之後,得到球隊的資訊並不是我們想要的。
這裡寫圖片描述
如果對於球隊物件,只需要返回一個值得話,我們可以在Models中重寫str方法,但是這個例子,我們需要返回球隊名字和所處城市兩個城市,那麼就需要重寫admin.ModelAdmin了。
admin.py

class team_admin(admin.ModelAdmin):
    list_display=("t_name","t_city")
admin.site.register(models.team,team_admin)

再重新整理網頁,發現就顯示正常了。
這裡寫圖片描述
我們在models.py中再加上一段程式碼
class team(models.Model):
class Meta():
verbose_name=”一個球隊”
verbose_name_plural=”很多球隊
t_name=models.CharField(“球隊名字”,max_length=30,null=True)
t_city=models.CharField(“所處城市”,max_length=30,null=True)

這裡寫圖片描述
這裡寫圖片描述
通過設定單數複數,就能實現個性化顯示
每新建一個數據,或者是修改一條資料,資料都將同步到資料庫中。
到目前為止我們就實現了,用Django自帶的後臺管理系統,進行顯示,資料庫互動等任務了。優勢是,簡單方面容易上手,但是缺點是,介面單一,功能固化,下一篇部落格我們將介紹怎麼自己寫views,自己生成表單提交資料到資料庫中。