-
1 # 趣味C語言CPP
-
2 # starwym31
現在python正是大火的時候.python在做web方面還是很有優勢的,python 有django .flash.
django 框架尤其要說一下,他提供全套的解決方案(full-stack framework + batteries included),基本要什麼有什麼(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,開發網 站應手的工具Django基本都給你做好了,因此開發效率是不用說的,出了問題也算好找,不在你的程式碼裡就在Django的原始碼裡。
強大的URL路由配置,Django讓你可以設計出非常優雅的URL,在Django裡你基本可以跟醜陋的GET引數說拜拜。
自助管理後臺,admin interface是Django裡比較吸引眼球的一項contrib,讓你幾乎不用寫一行程式碼就擁有一個完整的後臺管理介面。
系統緊耦合,如果你覺得Django內建的某項功能不是很好,想用喜歡的第三方庫來代替是很難的,比如下面將要說的ORM、Template。要在Django裡用SQLAlchemy或Mako幾乎是不可能,即使打了一些補丁用上了也會讓你覺得非常非常彆扭。
總的來說,Django大包大攬,用它來快速開發一些Web運用是很不錯的。如果你順著Django的設計哲學來,你會覺得Django很好用,越用越順手.
使用django的後臺管理
1.建立一個管理員使用者
python manage.py createsuperuser, 按提示輸入使用者名稱,郵箱,密碼
接著python manage.py runserver啟動伺服器,透過127.0.0.1:8000/admin訪問,輸入上面的使用者名稱,郵箱,密碼
進入管理站點,預設可以對groups、users進行管理
2.如果想將後臺改為中文
可在setting.py 裡將 LANGUAGE_CODE = "en-us" 改為"zh-hans"
另外還可以設定時區 TIME_ZONE = ‘Asia/Shanghai’
3.想在後臺看到資料庫資料,需要向admin註冊booktest的模型
開啟booktest/admin.py 檔案,註冊模型
from django.contrib import admin
from models import BookInfo
admin.site.register(BookInfo)
重新整理管理頁面,可以對BookInfo的資料進行增刪改查操作
問題:如果在str方法中返回中文,在修改和新增時會報ascii的錯誤
解決:在str()方法中,將字元創末尾新增“.encode(‘utf-8’)”
4.自定義管理頁面
Django提供了admin.ModelAdmin類
透過定義ModelAdmin的子類,來定義模型在Admin介面的顯式方式
class QuestionAdmin(admin.ModelAdmin):
...
admin.site.register(Question,QuestionAdmin)
list_display = ["pk","bittle","bpub_date"]
list_filter:過濾欄位,過濾框會出現在右側
list_filter = ["bittle"]
search_fields:搜尋欄位,搜尋框會出現在上側
search_fields = ["bittle"]
list_per_page:分頁,分頁框會出現在下側
list_per_page =10
例如:
在admin.py 裡
from django.contrib import admin
from models import*
class BookInfoAdmin(admin.ModleAdmin):
list_display = ["id","btitle","bpub_date"]
admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo)
這樣後臺資料就顯示為
id btitle bpub_date
1 abc 2017/10/7 11:02
2 haha 2017/10/7 11:02
新增、修改頁屬性
fields:屬性的先後順序
fields = ["bpub_date","btitle"]
fieldsets:屬性分組
fieldsets = [
("basic",{"fields":["btitle"]}),
("more",{"fields":["bpub_date"]}),
]
5.關於關聯物件的操作
對於HeroInfo模型類,有兩種註冊方式
方式一:與BookInfo模型類相同
方式二:關聯註冊
按照BookInfo的註冊方式完成HeroInfo的註冊
接下來實現關聯註冊
from django.contrib import admin
from models import BookInfo,HeroInfo
class HeroInline(admin.StackedInline):
model = HeroInfo
extra =2 (額外嵌入2個HeroInfo類)
class BookInfoAdmin(admin.ModelAdmin):
list_display = ["id","btitle","bpub_date"]
inlines = [HeroInfoInline] (在BookInfo裡嵌入兩個HeroInfo)
admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo)
可以將內嵌的方式改為表格
class HeroInfoInline(admin.TabularInline)
現在正是python大火的時候.,有必要要學習一下.我現在正在學習django,他還是很強大的.!
回覆列表
首先,做為一個程式設計師,死扣著一門語言,就是很不應該的事情。基本上等到你大四的時候,應該有這樣的能力,除了c艹有時候令人無語之外。大多數語言,給你一星期時間,你就可以上手開發了,一個月的時候,你就可以熟練的寫程式碼了。畢竟主流語言的語法,記憶體分配都是差不多的。
然後,剩下的就是你的深度了。你做python開發是吧?看過原始碼解析這本書嘛?看過原始碼嘛?知道Python int型別,string型別,list底層機制嘛?他們的記憶體池有啥不同?雖然它的垃圾回收器就是個玩具,但你記憶體回收瞭解過嘛?不說這個,你看過框架嘛,別光用,試著自己寫過嘛?反正你要就是死寫程式碼,那你寫了一年python真白瞎了。因為python的確太簡單了,分分鐘上手,不去主動學習,完全就是個體力活,寫了上萬行也沒用啊。。沒有任何技術含量。
你要這些真學好了,你怎麼找不到好工作?不說別的,python原始碼你看了一小部分了,說明你的c艹肯定也不差了。不然你也看不懂啊。
然後,除了這個之外,你就真的死抱著python不放了?python是好用,問題是你要死抱著,只能說明你學習的興趣太小。拘泥於一個語言,眼光很容易被限制,真的是很不好的事情。學學java,看看人家的垃圾回收器也好。python好,可以也去學習下機器學習嘛。總之,你這個問題問的很奇怪。。