初接觸開發(fā)的還是挺懵的毡熏,更別說Django框架了砖茸。
pyton的話是已經(jīng)學(xué)了一個多月了,熟悉了基本的操作碉碉,不過還是習(xí)慣與Shell的過程式編程柴钻。學(xué)習(xí)的話是看了馬哥的視頻,每集20分鐘還是挺快的垢粮,差不多有45集贴届。
馬哥教育看了KK的學(xué)習(xí)視頻(Django)才惡補了一下。
CMDB到20180430就已經(jīng)完成我規(guī)劃中第一個版本的開發(fā)了蜡吧。雖然有點粗糙毫蚓,但功能還是都實現(xiàn)了。如下圖昔善。
開發(fā)學(xué)習(xí)記錄:
Django的MTV
????M模型Model:進行業(yè)務(wù)邏輯判斷和數(shù)據(jù)存取
????T模板Template:將數(shù)據(jù)展示給用戶
????V視圖View:將用戶請求數(shù)據(jù)傳遞給Model元潘,將Model返回的數(shù)據(jù)傳遞給Template
????URLS:用于配置url和view處理對應(yīng)關(guān)系(注:url都使用 "/" 結(jié)尾配置)
ORM模型:
? ??對象關(guān)系映射(Object Relational Mapping,簡稱ORM)君仆,官方定義執(zhí)行百度翩概。
? ? 自己的理解:一種映射技術(shù),如使用MySQL時返咱,將一個類與一張表先建立映射關(guān)系氮帐,在面向?qū)ο箝_發(fā)過程中,直接通過操作類洛姑,來對數(shù)據(jù)進行處理上沐,而不需要去寫SQL語句。其特點為:使用簡單楞艾、便于理解参咙、準確操作。
? ? 建立映射關(guān)系硫眯,沒特定的要求蕴侧,可以從程序中新建類映射到數(shù)據(jù)庫中,在數(shù)據(jù)庫上將會創(chuàng)建一張表两入。也可以將對已有的表映射到程序上净宵,并生成一個類。
? ? 數(shù)據(jù)遷移(建立映射關(guān)系):程序類----映射---->數(shù)據(jù)庫????python manage.py migrate
? ????????????????????????????????????????????????數(shù)據(jù)庫----映射---->程序類????python manage.py inspectdb > app/models.py
? ? 遷移前提:在代碼中已配置好了連接數(shù)據(jù)庫信息。
? ? ORM操作參考資料:https://www.cnblogs.com/fortunate/p/7109345.html
? ????????????????????????????????????https://blog.csdn.net/fgf00/article/details/53678205
session:
? ??Session 是 用于保持狀態(tài)的基于 Web服務(wù)器的方法择葡。Session 允許通過將對象存儲在 Web服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象紧武。其中Session保存在服務(wù)端,cookie保存在客戶端敏储。
? ? Django操作session參考資料:https://www.cnblogs.com/kayb/p/7256222.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? https://blog.csdn.net/chenkfkevin/article/details/73650840
Elasticsearch:
? ? Elasticsearch用于存儲非關(guān)系性數(shù)據(jù)阻星。(ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎已添,基于RESTful web接口妥箕。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布更舞,是當(dāng)前流行的企業(yè)級搜索引擎畦幢。設(shè)計用于云計算中,能夠達到實時搜索缆蝉,穩(wěn)定呛讲,可靠,快速返奉,安裝使用方便贝搁。---百度百科),強大之處之于它的搜索能力芽偏。
? ? Python操作Elasticsearch 參考資料:
????????????https://blog.csdn.net/JunFeng666/article/details/78251788
????????????https://blog.csdn.net/YHYR_YCY/article/details/78882011
????????????https://blog.csdn.net/y472360651/article/details/76652021
常用代碼段:
? ? #檢查session是否有效雷逆,無效則需重新登錄
? ??def session_check(request):
????????try:
????????????if request.session['username']:
????????????return render(request, "cmdb/index.html")
????????else:
????????????return render(request, "login/login.html")
????????except KeyError:
????????????return render(request, "login/login.html")
? ? #根據(jù)前端傳來的則返回不同的提示信息
????def user_add_delete(request):
????????if request.method =="POST":
????????????username = request.POST.get('username')
????????????tty = models.DUser.objects.filter(user=(username))
????????????try:
????????????????if tty[0].user :
????????????????????models.DUser.objects.filter(user=(username)).delete()
????????????????????context = {'messages':'刪除成功!', 'messages_tagname': username}
????????????????????return render(request, "cmdb/user_delete.html", context)
????????????????# 用戶不存在時會報錯
? ? ? ? ????????except IndexError:
????????????????????context = {'messages':'該用戶不存在污尉,刪除膀哲!', 'messages_tagname': username}
????????????????????return render(request, "cmdb/user_delete.html",context)
HTML:
更多功能及特性請參考:http://www.w3school.com.cn/html5/index.asp
后續(xù):
學(xué)習(xí):前端相關(guān)技術(shù)
待解決問題:
1、前端操作行數(shù)據(jù)時被碗,如果將相關(guān)的參數(shù)傳遞給后端某宪。
2、默認顯示的數(shù)據(jù)按創(chuàng)建時間排序
3锐朴、后端支持分頁功能