????今天主要學習了Django框架的使用描馅。
? ? 使用django-admin創(chuàng)建項目何陆,如django-admin? startproject HelloWorld,創(chuàng)建完項目之后镜撩,可以使用python manage.py runserver 0.0.0.0:8000啟動服務戈二,這時舒裤,通過瀏覽器,輸入網址挽拂,127.0.0.1:8000就可以打開創(chuàng)建的網頁了惭每。修改網頁需要創(chuàng)建view.py,并在urls.py里面將view.py的視圖函數綁定路由亏栈。url函數接受四個參數台腥。兩個必選參數regex、view和兩個可選參數:kwargs绒北、name黎侈。regex,正則表達式闷游,與之匹配的url會執(zhí)行對應的第二個參數view峻汉;view,用于執(zhí)行與正則表達式匹配的url請求脐往;kwargs休吠,視圖使用的字典類型的參數;name业簿,用來反向獲取url瘤礁。
? ? 使用html作為模板文件。需要先修改settings.py里面的TEMPLATES的'DIRS'字段的值梅尤,修改值為存放html文件的templates文件夾的路徑柜思。向模板提交數據可以使用render函數岩调。
????????from django.shortcuts import render
? ? ? ? render(request, 'xx.html', {字典數據})
? ? Django模板標簽。
????????if/else標簽赡盘。
????????????{% if condition %}
? ? ? ? ? ? ? ? ...display
? ? ? ? ? ? {% endif %}
????????支持嵌套号枕。接受and,or或not關鍵字對多個變量做判斷陨享,或取反葱淳。
? ? ? ? for標簽。{% for %}允許我們在一個序列上迭代霉咨,與python的for語句的情形類似蛙紫,循環(huán)語法是for X in Y,Y是要迭代的序列而X是在每一個特定的循環(huán)中使用的變量名稱途戒。每一次循環(huán)中,模板系統(tǒng)會渲染在{% for %}和{% endfor %}之間的所有內容僵驰。給標簽增加一個reversed喷斋,可以使列表反向迭代,可嵌套使用標簽蒜茴。
? ? ? ? ifequal/ifnotequal標簽星爪。比較兩個值,判斷是否相等/不等粉私,符合條件時顽腾,顯示在{% ifequal %}和{% endifequal %}中的所有值。和if標簽一樣诺核,支持可選的else標簽抄肖。
? ? ? ? 過濾器。模板過濾器可以在變量被顯示前修改它窖杀,使用管道字符漓摩,如{{ name|lower }},name變量被lower處理后入客,大寫轉小寫管毙。過濾管道可被套接,一個過濾器管道的輸出可以作為下一個管道的輸入桌硫。有些過濾器有參數夭咬,過濾器的參數跟隨冒號之后并且以雙引號包含。其他過濾器:addslashes铆隘,添加反斜杠到任何反斜杠卓舵、單引號或雙引號的前面;date咖驮,按指定的字符串參數格式化date或datetime對象边器;length训枢,返回變量的長度。
? ? ? ? include標簽忘巧,允許在模板中包含其他模板的內容恒界。模板可以用繼承的方式來實現(xiàn)復用,使用{% extends "xx.html" %}實現(xiàn)砚嘴。
? ? Django模型十酣。使用模型,必須創(chuàng)建一個app际长,使用djanjo-admin startapp appname耸采,創(chuàng)建app。修改models.py添加數據庫里面存放的表和字段工育。類名相當于表名虾宇,類里面的字段代表數據表中的字段。然后在settings.py中找到INSTALLED_APPS這一項如绸,添加app名稱嘱朽。運行python manage.py makemigrations appname和命令python manage.py migrate appname創(chuàng)建表結構。接著可以進行數據庫操作怔接,賦值之后搪泳,要調用save方法保存到數據庫。
? ? Django表單扼脐。HTTP協(xié)議以請求-回復的方式工作岸军。客戶發(fā)送請求時瓦侮,可以在請求中附加數據艰赞。服務器通過解析請求,可以獲得客戶傳來的數據脏榆,并根據url提供特定的服務猖毫。請求方法一般有GET和POST兩種。在html文件中定義相應的請求方法须喂,對應的view函數設置操作吁断。每個view函數的第一個參數是一個HttpRequest對象。這個對象包含當前請求URL的一些信息坞生。path仔役,請求頁面的路徑;method是己,請求使用的方法又兵,大寫表示;GET,GET所有參數的類字典對象沛厨;POST宙地,通GET;FILES逆皮,包含所有上傳文件的類字典對象宅粥;user,代表當前登錄用戶电谣;session秽梅,唯一可讀寫的屬性,代表當前會話的字典對象剿牺。
? ? Admin管理工具企垦。通過命令python manage.py createsuperuser創(chuàng)建超級用戶,然后瀏覽器輸入127.0.0.1:8000/admin登錄進行管理臺晒来。為了讓admin界面管理某個數據類型钞诡,需要先注冊該模型到admin,修改admin.py潜索,使用admin.site.register(ModelName)來注冊數據模型臭增。使用fields可以定義想要顯示的屬性,使用fieldsets可以修改布局竹习,使用基于admin.TabularInline的類可以定義內聯(lián)顯示,使用list_display可以定義列表頁的顯示列牺,使用search_fields可以為列表頁增加搜索欄整陌。
? ? Django是非常強大的web框架,可以讓人更方便快捷的開發(fā)出更美觀強大的web頁面瞎领,今天的學習讓我對Django的使用有了初步的了解泌辫,收獲很大。