




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
MVC框MVC最初是由施樂公司旗下的帕羅奧多中的一位研究人員smalltalkMVC分工MVC的思想:解耦MVCwebwebMVCWebMVC通過瀏覽器用戶信息M:Model,V:View,htmlC:Controller,MVDjango框Django是的開發(fā)人員為開發(fā)內(nèi)容而設(shè)計出來MVCMVT。DjangoDRYDonotrepeatyourself.不要自己M:Model,MVCMV:View,MVCCMTT:Temte,模板,和MVC中V功能相同,產(chǎn)生html頁面之前安裝python 令:sudopip3install包包的安裝路徑:/usr/local/lib/python3.5/dist-python虛擬環(huán)境是真實python環(huán)境的版本在虛擬環(huán)境中使用的python是的python,安裝python包也是安裝在python。安裝虛擬環(huán)境令sudopipinstallvirtualenvsudopipinstallvirtualenvwrapper#安裝虛擬環(huán)境擴(kuò)展包 下面的.bashrc文件,添加下面兩行。exportWORKON_HOME=$HOME/.virtualenvssource/usr/local/bin/virtualenvwrapper.sh4)source.bashrc創(chuàng)建虛擬環(huán)境命mkvirtualenv創(chuàng)建python3擬環(huán)境:mkvirtualenv-ppython3進(jìn)入虛擬環(huán)境工workon查看機(jī)器上有多少個虛擬環(huán)workontab刪除虛擬環(huán)境rmvirtualenv虛擬環(huán)境下安裝包令:pipinstallsudopipinstall查看虛擬環(huán)境中安裝了哪些python包piplistpipze安裝django環(huán)境pipinstallapt-getinstallpipinstallpython命令:django-adminstartproject項 如下init.py:test1pythonsettings.py:urls.py:urlwsgi.py:web服務(wù)器和Django交互的manage.py:創(chuàng)建應(yīng)用令如下:pythonmanage.pystartapp應(yīng)用名注意:創(chuàng)建應(yīng)用時需要先進(jìn)入項目。應(yīng)用如下:init.py:說 是一個Python模塊models.py:views.py:MTtests.py:admin.py:管理相關(guān)的文件建立應(yīng)用和項目之間的聯(lián)系,需要對應(yīng)用進(jìn)行。settings.pyINSTALLED_APPSwebpythonmanage.pyDjangoORM必須繼承與models.Model類。 設(shè)計BookInfo類。設(shè)計fo類命令:pythonmanage.py命令:pythonmange.py應(yīng)用名_進(jìn)入項目s令:pythonmanage.pys以下為在相互s終端中演示的例子:frombooktest.modelsimportBookInfo,向booktest_bookinfo表中插入一條數(shù)據(jù)b=BookInfo()#BookInfo類的對象b.btitle=''#定義b對象的屬性并賦值b.bpub_date=date(1990,10,11)b.save()#查詢出booktest_bookinfo表中id1b=在上一步的基礎(chǔ)上改變b對應(yīng)的日期b.bpub_datedate(1989,10,21)b.save()#緊接上一步,刪除b對應(yīng)的的數(shù)據(jù)b.delete()#向booktest_fo表中插入一條數(shù)據(jù)h=fo()h.hname=''h.hgender=ment=b2=h.hbook=b2#給關(guān)系屬性賦值,對象所屬的對查詢表里面的所有內(nèi)容。1)查詢出id為2的中所有人物的信息b=b.fo_set.all()#查詢出b中所有人物的信命令:pythonmanage.py在應(yīng)用下的admin.py中模型類告訴djang框架根據(jù)的模型類來生成對應(yīng)表管理頁面b=str(b)defindex(request):returnHttpResponse('o視圖函數(shù)必須有一個參數(shù)request,進(jìn)行處理之后,需要返回一個HttpResponse的類對象,opython就是返回給瀏覽器顯示的內(nèi)容進(jìn)行urlurl配置的目的是讓建立url和視圖函數(shù)的對應(yīng)關(guān)系。url配置項定義在urlpatternsurlurlurl(url(正則表達(dá)式,include(urls工作中在配置url時,首先在項目的urls.py文件中添加配置項時,并不寫具體的url和視圖函數(shù)之間的對應(yīng)關(guān)系,而是包含具體應(yīng)用的urls.py文件,在urls.pyurl在項目的urls.py文件中包含具體應(yīng)用的urls.py文件,應(yīng)用的urls.pyurl當(dāng)用戶輸入如時,去除和最前面的/,aindexaindexurlsaindexurlsindexindexhtml去模 下面獲取html文件的內(nèi)容,得到一個模板對象htmlfor{%foriinlistlist{%emptylist{%endfor設(shè)計出頁面的url和對應(yīng)的視圖函數(shù)的名字,確定視圖函數(shù)的功能以下為案例中的簡單設(shè)計過完成信息的展示設(shè)計url,通過瀏覽器時顯示urlshow_books查詢出所有的信息,將這些信息傳遞給模板文件遍歷顯示出每一本的信息。完成點(diǎn)擊某本時,顯示出里所有信息的頁面設(shè)計url,通過數(shù)字時顯示對的信息頁面這里數(shù)字指點(diǎn)擊的的iddetail接收的id,根據(jù)id查詢出相應(yīng)的信息,然后查詢出中的所有信息。detail.html模DjangoO(objects):DjangoORM架的功Django數(shù)據(jù)庫配mysql:mysql–urootp查看有哪些數(shù)據(jù)庫:showdatabases創(chuàng)建數(shù)據(jù)庫:createdatabasetest2charset=utf8;切記:指定編碼使用數(shù)據(jù)庫:usetest2;查看數(shù)據(jù)庫中的表:showsettings.pyDATABASESmysqlpython2python3python2要安裝mysql-python:pipinstallmysql-pythonpython3要安裝pymysql:pipinstallpymysqlpython3pymysql,test2/init.pyimportpymysqlBookInfo,breadbcomment,另外設(shè)置軟刪除標(biāo)記屬性設(shè)計fo類,增加軟刪除標(biāo)記屬性isDeleteURL1)信息展示頁設(shè)計url,通過瀏覽器時顯示urlindex查詢出所有的信息,將這些信息傳遞給模板文件index.html遍歷顯示出每一本的信息并增加新建和刪除超2)信息新增庫中新增一條信息b)urlcreateurl3)信息刪除數(shù)據(jù)庫中對應(yīng)的一條數(shù)據(jù)。其中數(shù)字是點(diǎn)擊的的id。獲取的id,進(jìn)行刪除。pythondjangodjango.db.modelsIntegerField,idTrueFalseNull、True、FalseCharField(max_length=最大長度十進(jìn)制浮點(diǎn)數(shù)。參數(shù)max_digits表示總位。參數(shù)decimal_ces表示小數(shù)DateField:([auto_now=False,參數(shù)auto_now表示每次保存對象false。參數(shù)auto_now_add表示當(dāng)對象第false。auto_now_addauto_nowDateFieldDateField校驗,確保是有效的鍵字段,默認(rèn)值是FalseAutoFieldTrue,FalseTrue,FalseTrue,F(xiàn)alseTrue,F(xiàn)alse對比:null是數(shù)據(jù)庫范疇的概念,blank是管理頁面表單驗證范疇的。defaultblank參考文檔 mysql.log是mysql的日志文件,里面記錄的對MySQL數(shù)據(jù)庫的操作記錄。mysqlmysql1)使用下面令打開mysql的配置文件,去除68,69行的注釋,然后保存sudovi/etc/mysql/mysql 2)mysqlmysqlsudoservicemysqlrestart3)MySQL/var/log/mysql/mysql.logmysql使用下面令可以實時查看mysql的日志文件:sudotail-f返回表中滿足條件的一條且只能有返回值是一個模型如果查到多條數(shù)據(jù),則拋異常MultipleObjectsReturnedDoesNotExist返回模型類返回值是對應(yīng)表格中返回滿足條返回值是返回不滿足返回值是對查詢結(jié)果返回值是get例:查詢id為3的信息all方法示例例:查詢所有信息模型類屬性名查詢評論量為34的的信息a)判等條件名:exact。例:查詢編號為1的。例:查詢書名包含'傳'的。containsBookInfo.objects.filter(btitlecontains='傳')例:查詢書名以'部'結(jié)尾的endswith開頭:startswithBookInfo.objects.filter(btitleendswith='部')空查詢例:查詢書名不為空的。select*frombooktest_bookinfowherebtitleisnotnull;BookInfo.objects.filter(btitleisnull=False)范圍查詢例:查詢id為1或3或5的select*frombooktest_bookinfowhereidin(1,3,5);BookInfo.objects.filter(idin=[1,3,5])比較查詢gt(greatethan) than)gte(equal)大于等lte例:查詢id大于3的Select*frombooktest_bookinfowhereid>3;BookInfo.objects.filter(idgt=3)日期查例:查詢1980年的。BookInfo.objects.filter(bpub_dateyear=1980)例:查詢1980年1月1日后的。fromdatetimeimportdateBookInfo.objects.filter(bpub_dategt=date(1980,1,1))exclude法示例:例:查詢id不為3的信息。order_by示例:作用:進(jìn)行查詢結(jié)果進(jìn)行排序例:查詢所有的信息,按照id從小到大進(jìn)行排序例:查詢所有的信息,按照id從大到小進(jìn)行排序BookInfo.objects.all().order_by('-例:把id大于3的信息按閱讀量從大到小排序顯示BookInfo.objects.filter(idgt=3).order_by('-F對fromdjango.db.modelsimport例:查詢閱讀量大于評論量信息。BookInfo.objects.filter(breadgt=F('bcomment'))例:查詢閱讀量大于2倍評論量信息。BookInfo.objects.filter(breadgt=F('bcomment')*2)Q對作用:用于查詢時條件之間的邏輯關(guān)系。notandor,Q&|~操使用之前需要先導(dǎo)入fromdjango.db.modelsimport例:查詢id大于3且閱讀量大于30的的信息。BookInfo.objects.filter(idgt=3,breadgt=30)BookInfo.objects.filter(Q(idgt=3)&Q(breadgt=30))例:查詢id大于3或者閱讀量大于30的的信息。BookInfo.objects.filter(Q(idgt=3)|Q(breadgt=30))例:查詢id不等于3的信息。作用:對查詢結(jié)果進(jìn)行聚合操作sumcountavgmaxaggregate:調(diào)用這個函數(shù)來使用聚合。回值是一個字典fromdjango.db.modelsimport例:查詢所有的數(shù)目{'idcount':例:查詢所有閱讀量的總和{'breadsum':count數(shù)值是一個數(shù)例:統(tǒng)計所有的數(shù)目。例:統(tǒng)計id大于3的所有的數(shù)目。BookInfo.objects.filter(idgt=3).count()參考文檔 all,filter,exclude,order_byQuerySet如果b[0:1].get()不存在,會拋出DoesNotExist如果b[0:1].get()不存在,會拋出DoesNotExistexists:判斷一個查詢集中是否有數(shù)據(jù)。True例:類-models.ForeignKey()例:類-類型類體育國際models.ManyToManyField()models.OneToOneField關(guān)聯(lián)查詢(一對多例:查詢id為1的關(guān)聯(lián)的的信息b.通過模型類查詢fo.objects.filter(hbook例:查詢id為1的關(guān)聯(lián)的信息。h=fo.objects.get(id=1)通過模型類查詢BookInfo.objects.filter(fo一類的對象.多類名小寫_set.all()多類的對象.關(guān)聯(lián)屬性#查詢多類的對象對應(yīng)的一類的對象id多類的對象.關(guān)聯(lián)屬性例:查詢信息,要求關(guān)聯(lián)的的描述包含'八'。 mentcontains='八')例:查詢信息,要求中的的id大于3.BookInfo.objects.filter(foid例:查詢書名為“”的所有fo.objects.filter(hbook 一類名.objects.filter(多類名小寫多類屬性名條件名)多類名.objects.filter(關(guān)聯(lián)屬性一類屬性名savedelete地區(qū)表:id,atitle,aParent_id;mysqlsql:sourceBookInfo.objects.all()->objectsobjectsmodels.Manger比如調(diào)用BookInfo.books.all()返回的是沒有刪除的的數(shù)據(jù)Django默認(rèn)生成的表名Meta,db_table視接收請求,進(jìn)行處理,與MT返回htmlHttpResponseredirect,還可以返回jsonurlurlsurlsurlsurlurlurl匹配的過去除和后面的參數(shù),剩下/aindex,再把前面的/去掉,剩下拿aindex先到項目的url.py文件中進(jìn)行從上到下的匹配,匹配成功之后執(zhí)行后面對應(yīng)的處理動作,就是把匹配成功的部分a字符去除,然后拿剩下的部分indexurls.py404要顯示自定義的頁面則需要的tem 下面自定義一個404.html文件urlurl500:settings.pyALLOWED_HOST=[捕獲url參進(jìn)行urldjango?P<顯示出登錄頁設(shè)計url,通過瀏覽器時顯示登urlloginlogin.html視模板文登錄校驗功設(shè) url,點(diǎn)擊登錄頁的登錄按鈕發(fā)起請時進(jìn)行登錄校驗。無javascript。在不全部加載某一個頁面部的情況下,對頁面進(jìn)行局的刷新,ajax請求都在。,css,jsajax:jqueryjsonjsonjson顯示出登錄頁設(shè)計url,通過瀏覽器時顯urllogin_ajaxlogin_ajax.htmljqueryajax登錄校驗功設(shè) url,點(diǎn)擊登錄頁的登錄按鈕發(fā)起請時進(jìn)行登錄校驗。postjsonJsonRepsoneJson式如下:{'res':'1'}{'res':'0'}是由服務(wù)器生成, 在瀏覽器端的一小段文本信息的特點(diǎn):以鍵值對方式進(jìn)行通過瀏覽器一個時會將瀏覽器的跟相關(guān)的所有信息發(fā)送給該的服務(wù)器。request.S是基于安全的。是有過期時間的,如果不指定,默認(rèn)關(guān)閉瀏覽器之后就會過記住用戶名案例session在服務(wù)器端sessionsession是以鍵值對進(jìn)行的session依賴于。唯一的標(biāo)識碼保存在sessionid中session記住用戶登錄狀態(tài)案例session:涉及到安全性要求比較高的數(shù)據(jù)。賬戶,模靜態(tài)內(nèi)容:css,js,htmlhtml加載模板文件loader.get_tem定義模板上下文htmlhtml首先去配置的模 下面去找模板文件去INSTALLED_APPS下面的每個應(yīng)用的temtes去找模板文件前提是應(yīng)用中必須有temtes文件夾。模板語言簡稱為DTL(DjangoTemte例如:{{book.btitlebookbtitle例如book0book0.表。forforxin#列表不為空時執(zhí)行{%empty{%endfor可以通過forloop.counter}}for{%if{%elif{%else{%endif邏輯運(yùn)算:notandor /s/django_182/ref/temtes/builti多行注釋:{%comment menthtml在父模板里可以定義塊,使用{%block{%endblock繼承格式:{%extends父模板文件路徑%}{%blockblock.super}}{%endblockhtml轉(zhuǎn)編輯商品詳情信息,數(shù)據(jù)表中保存的是htmlhtml小于號<轉(zhuǎn)換為小于號<轉(zhuǎn)換為大于號>轉(zhuǎn)換為>單引號'轉(zhuǎn)換為雙引號"轉(zhuǎn)換為與符號&轉(zhuǎn)換為;|safe}}{%autoescapeoff{%endautoescapecsrf登錄頁需要一個模板文件login.html.修改頁面也需要一個模板文件顯示登錄頁的視圖login,錄的視圖login_check,顯示發(fā)帖頁的視圖change_pwd,處理修改的視圖change_pwd_action.a)只有用戶登錄之后才可以進(jìn)行修改操作登錄裝飾器函數(shù)案例流程圖djangocsrfcsrf表單post提交數(shù)據(jù)時加上{%csrf_token%}。csrfmiddlewaretoken服務(wù)器交給瀏覽器保存一個名字為csrftoken的信息在用戶、登錄頁面,為了防止請求,可以加入功能,如果驗證url根據(jù)url正則表達(dá)式的配置動態(tài)的生成url在項目urls中包含具體應(yīng)用的urls文件時指定在應(yīng)用的urls中配置是指定{%url'namespace:name'%}例如{%url{%url'namespace:name'參數(shù)%}例如{%url'booktest:fan2'url'namespace:name'url'booktest:fan2'id=1%}fromdjango.core.urlresolversimportre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)材料解除合同范本
- 化妝合同范本
- 代理雨鞋采購合同范本
- 獸藥委托加工合同范本
- 公租房出售合同范本
- 代理工程合同范本
- 買新房認(rèn)購合同范例
- 2024年洛陽市新安縣龍?zhí)洞髰{谷荊紫仙山景區(qū)招聘考試真題
- 農(nóng)業(yè)技術(shù)人員服務(wù)合同范本
- 2024年菏澤市勞信就業(yè)服務(wù)有限公司招聘制醫(yī)院人員考試真題
- 高中轉(zhuǎn)學(xué)申請書
- 2025年中國建材集團(tuán)所屬中建材聯(lián)合投資有限公司招聘筆試參考題庫附帶答案詳解
- 2025年企業(yè)合伙聯(lián)營框架協(xié)議模板(2篇)
- 2025年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 小學(xué)生拗九節(jié)課件
- 人教版PEP小學(xué)五年級英語下冊全冊教案(含計劃)
- 2023湖南文藝出版社五年級音樂下冊全冊教案
- 中職數(shù)學(xué)單招一輪總復(fù)習(xí)《集合》復(fù)習(xí)課件
- DL-T 572-2021電力變壓器運(yùn)行規(guī)程-PDF解密
- 教科版四下科學(xué)《植物的生長變化》單元解讀(新教材解讀)
- 公司員工離職申請表
評論
0/150
提交評論