版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
成果名稱:《學(xué)生管理系統(tǒng)Python》 一、實(shí)踐目的python作為一門高級(jí)編程語言,它的誕生雖然很偶然,但是它得到程序員的喜愛卻是必然之路。對(duì)于Python的定位是“優(yōu)雅”、“明確”、“簡(jiǎn)單”,所以Python程序看上去總是簡(jiǎn)單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復(fù)雜的程序。現(xiàn)在的人工智能非常的火爆,其工般我們用爬蟲爬到了大量的數(shù)據(jù)之后,我們需要處理數(shù)據(jù)用來分析,不然爬蟲白爬了,我們最終的目的就是分析數(shù)據(jù),在這方面關(guān)于數(shù)據(jù)分析的庫也是非常的豐富的,各種圖形分析圖等都可以做出來。也是非常的方便,其中諸如Seaborn這樣的可視化庫,能夠僅僅使用一兩行就對(duì)數(shù)據(jù)進(jìn)行繪圖,而利用Pandas和numpy、scipy則可以簡(jiǎn)單地對(duì)大量數(shù)據(jù)進(jìn)行篩選、回歸等計(jì)算。而后續(xù)復(fù)雜計(jì)算中,對(duì)接機(jī)器學(xué)習(xí)相關(guān)算法,或者提供Web訪問接口,或是實(shí)現(xiàn)遠(yuǎn)程調(diào)用接口,都非常簡(jiǎn)單。二、實(shí)踐內(nèi)容優(yōu)點(diǎn)Python的定位是“優(yōu)雅”、“明確”、“簡(jiǎn)單”,所以Python程序看上去總是簡(jiǎn)單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復(fù)雜的程序。開發(fā)效率非常高,Python有非常強(qiáng)大的第三方庫,基本上你想通過計(jì)算機(jī)實(shí)現(xiàn)任何功能,Python官方庫里都有相應(yīng)的模塊進(jìn)行支持,直接下載調(diào)用后,在基礎(chǔ)庫的基礎(chǔ)上再進(jìn)行開發(fā),大大降低開發(fā)周期,避免重復(fù)造輪子。高級(jí)語言————當(dāng)你用Python語言編寫程序的時(shí)候,你無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)可移植性————由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過改動(dòng)使它能夠工作在不同平臺(tái)上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有Python程序無需修改就幾乎可以在市場(chǎng)上所有的系統(tǒng)平臺(tái)上運(yùn)行可擴(kuò)展性————如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們??汕度胄浴憧梢园裀ython嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。缺點(diǎn):速度慢,Python的運(yùn)行速度相比C語言確實(shí)慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑于使用Python的主要原因,但其實(shí)這里所指的運(yùn)行速度慢在大多數(shù)情況下用戶是無法直接感知到的,必須借助測(cè)試工具才能體現(xiàn)出來,比如你用C運(yùn)一個(gè)程序花了0.1s,用Python是0.01s,這樣C語言直接比Python快了10s,算是非??鋸埩耍悄闶菬o法直接通過肉眼感知的,因?yàn)橐粋€(gè)正常人所能感知的時(shí)間最小單位是0.15-0.4s左右,哈哈。其實(shí)在大多數(shù)情況下Python已經(jīng)完全可以滿足你對(duì)程序速度的要求,除非你要寫對(duì)速度要求極高的搜索引擎等,這種情況下,當(dāng)然還是建議你用C去實(shí)現(xiàn)的。代碼不能加密,因?yàn)镻YTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認(rèn)為這算是一個(gè)缺點(diǎn),如果你的項(xiàng)目要求源代碼必須是加密的,那你一開始就不應(yīng)該用Python來去實(shí)現(xiàn)。線程不能利用多CPU問題,這是Python被人詬病最多的一個(gè)缺點(diǎn),GIL即全局解釋器鎖(GlobalInterpreterLock),是計(jì)算機(jī)程序設(shè)計(jì)語言解釋器用于同步線程的工具,使得任何時(shí)刻僅有一個(gè)線程在執(zhí)行,Python的線程是操作系統(tǒng)的原生線程。在Linux上為pthread,在Windows上為Winthread,完全由操作系統(tǒng)調(diào)度線程的執(zhí)行。一個(gè)python解釋器進(jìn)程內(nèi)有一條主線程,以及多條用戶程序的執(zhí)行線程。即使在多核CPU平臺(tái)上,由于GIL的存在,所以禁止多線程的并行執(zhí)行。關(guān)于這個(gè)問題的折衷解決方法,我們?cè)谝院缶€程和進(jìn)程章節(jié)里再進(jìn)行詳細(xì)探討。(一)代碼格式強(qiáng)制縮進(jìn)!Python開發(fā)者有意讓違反了縮進(jìn)規(guī)則的程序不能通過編譯,以此來強(qiáng)制程序員養(yǎng)成良好的編程習(xí)慣。并且Python語言利用縮進(jìn)表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號(hào)或者某種關(guān)鍵字。增加縮進(jìn)表示語句塊的開始,而減少縮進(jìn)則表示語句塊的退出??s進(jìn)成為了語法的一部分。根據(jù)PEP的規(guī)定,必須使用4個(gè)空格來表示每級(jí)縮進(jìn)。(二)關(guān)鍵字(三)基本語法弱類型變量必須先賦值再使用保留字是Python語言中已經(jīng)被賦予特定意義的一些單詞,開發(fā)程序時(shí),不可以把這些保留字作為變量,函數(shù),類,模塊和其他對(duì)象的名稱來使用。標(biāo)識(shí)符:可以理解為一個(gè)名字,它主要用來標(biāo)識(shí)變量,函數(shù),類,模塊和其他對(duì)象名稱。由字母,下劃線和數(shù)字組成,并且第一個(gè)字符不能是數(shù)字可以使用的標(biāo)識(shí)符字符有:a-z,A-Z,0-9,“_”python函數(shù)與c語言相似函數(shù)(function)即通過將一段有規(guī)律的,重復(fù)的代碼定義為函數(shù),來達(dá)到一次編寫多次調(diào)用的目的。使用def關(guān)鍵字來實(shí)現(xiàn)語法:deffunctionname([parameterlist]): [‘’’comments’’’] [functionbody]
parameterlist:參數(shù)列表,多個(gè)參數(shù)之間用逗號(hào)隔開‘’’comments’’’:表示函數(shù)指定注釋,如果寫了注釋,再調(diào)用的的時(shí)候就會(huì)出現(xiàn)以幫助用戶。functionbody:用于指定函數(shù)體,即函數(shù)被調(diào)用后,要執(zhí)行的功能代碼,如果有返回值,可以使用return語句返回。deffilterchar(string):
"""
功能:過濾危險(xiǎn)字符,并過濾后的結(jié)果輸出
about:要過濾的字符串
沒有返回值
"""
importre
pattern=r'(黑客)|(抓包)|(監(jiān)聽)|(Trojan)'
sub=re.sub(pattern,'@_@',string)
print(sub)about='我是一個(gè)程序員,喜歡看黑客方面的書籍,想研究一下Trojan'
filterchar(about)pass語句pass語句表示空語句,它不做任何事情,一般起到占位作用。python3中可以在使用表達(dá)式的地方使用...來表示省略代碼,由于省略號(hào)自身什么都不做,因此可以表示pass的代替參數(shù)傳遞形參,實(shí)參,值傳遞,引用傳遞位置參數(shù)位置參數(shù)也稱為必備參數(shù),必須按照正確的順序傳到函數(shù)中。即調(diào)用時(shí)的數(shù)量和位置必須和定義時(shí)是一樣的,少參數(shù)和錯(cuò)誤的位置都回使程序出錯(cuò)。關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)是指使用形參的名字來確定輸入的參數(shù)值。通過該方式指定實(shí)參時(shí),不再需要與形參的位置完全一致,只要將參數(shù)名寫正確即可為參數(shù)設(shè)置默認(rèn)值調(diào)用函數(shù)時(shí),如果沒有指定某個(gè)參數(shù)將拋出異常,即在定義函數(shù)時(shí),直接指定形式參數(shù)的默認(rèn)值,當(dāng)沒有傳入?yún)?shù)時(shí)則直接使用定義函數(shù)時(shí),設(shè)置的默認(rèn)值。語法:deffunctionname(....,[parameter1=defalutvalue1]): [functionbody]注意在定義函數(shù)時(shí),指定默認(rèn)的形參必須在所有參數(shù)的最后,否則將參數(shù)語法錯(cuò)誤。每個(gè)函數(shù)都是一個(gè)對(duì)象注意:使用可變對(duì)象作為參數(shù)的默認(rèn)值時(shí),多次調(diào)用可能回導(dǎo)致意料之外的情況發(fā)生可變參數(shù)可變參數(shù)可稱為不定長(zhǎng)參數(shù),即傳入函數(shù)中的時(shí)間參數(shù)可以是0個(gè),1個(gè),2個(gè)到任意個(gè)。定義可變參數(shù)時(shí),主要有兩種形式:第一種:*parameter第二種:**parameter
返回值可以在函數(shù)體內(nèi)使用return語句位函數(shù)指定返回值,該返回值可以時(shí)任意類型,并且無論return語句出現(xiàn)在函數(shù)的什么位置,只要得到執(zhí)行,就會(huì)直接結(jié)束函數(shù)的執(zhí)行。return語句的語法格式:return[value]如果返回一個(gè)值,那么,在調(diào)用函數(shù)的表達(dá)式會(huì)得到一個(gè)值,如果返回的是多個(gè)值,那么在調(diào)用函數(shù)的返回值會(huì)得到一個(gè)元組。如果一個(gè)函數(shù)中沒有return,那么整個(gè)函數(shù)將返回None,即返回一個(gè)空值。返回值可以在函數(shù)體內(nèi)使用return語句位函數(shù)指定返回值,該返回值可以時(shí)任意類型,并且無論return語句出現(xiàn)在函數(shù)的什么位置,只要得到執(zhí)行,就會(huì)直接結(jié)束函數(shù)的執(zhí)行。return語句的語法格式:return[value]如果返回一個(gè)值,那么,在調(diào)用函數(shù)的表達(dá)式會(huì)得到一個(gè)值,如果返回的是多個(gè)值,那么在調(diào)用函數(shù)的返回值會(huì)得到一個(gè)元組。如果一個(gè)函數(shù)中沒有return,那么整個(gè)函數(shù)將返回None,即返回一個(gè)空值。(四)初識(shí)CSS什么是CSS?CSS(CascadingStyleSheet)級(jí)聯(lián)樣式表表現(xiàn)HTML或XHTML文件樣式的計(jì)算機(jī)語言包括對(duì)字體、顏色、邊距、高度、寬度、背景圖片、網(wǎng)頁定位等設(shè)定CSS的基本語法結(jié)構(gòu)語法: 選擇器{ 聲明1; 聲明2; } 聲明 屬性:值在HTML中引入CSS樣式的幾種方式行內(nèi)樣式使用style屬性引入CSS樣式標(biāo)簽style=“屬性1:值;屬性2:值;”></標(biāo)簽>內(nèi)部樣式表在<head>標(biāo)簽中引入<style>標(biāo)簽寫CSS樣式表<styletype=“text/css”> 選擇器{聲明;}</style>外部樣式表寫.css樣式表文件,通過鏈接式或者導(dǎo)入式引入CSS樣式表外部樣式表分為兩種方式: 鏈接式在<head>標(biāo)簽中使用<link>標(biāo)簽 <linkhref="style.css"rel="stylesheet"type="text/css"/> 導(dǎo)入式在<head>標(biāo)簽中使用<style>標(biāo)簽并在其中用@import<styletype="text/css"> @importurl("style.css");</style>區(qū)別:link是將css布局文件先加載如網(wǎng)頁文件中,所以這時(shí)無論網(wǎng)速再慢,最終實(shí)現(xiàn)的網(wǎng)頁效果都是一樣的。而@import則是先將網(wǎng)頁文件加載,再加載布局文件,這時(shí)候如果網(wǎng)速過慢的話,則會(huì)先出現(xiàn)沒有布局的網(wǎng)頁效果,就會(huì)顯得很難看。CSS的基本選擇器,語法規(guī)則在內(nèi)部樣式表和外部樣式表我們?nèi)绾握业巾撁嬷械囊揎椀脑啬??font-size 字號(hào)大小font-family 字體樣式font-weight100-900 字體粗細(xì)font-style 字體風(fēng)格(斜體)統(tǒng)一設(shè)置,必須按照下的順序:選擇器{font:font-stylefont-weightfont-size/line-heightfont-family;}color 文本顏色line-height 行間距text-align 水平對(duì)齊方式text-indent 首行縮進(jìn)(只能讓塊元素進(jìn)行縮進(jìn))text-decoration 文本的裝飾 none默認(rèn)。定義標(biāo)準(zhǔn)的文本。 underline定義文本下的一條線。 overline定義文本上的一條線。 line-through定義穿過文本下的一條線。偽類選擇器用于向某些選擇器添加特殊的效果。比如給鏈接添加特殊效果為了和我們剛才學(xué)的類選擇器相區(qū)別,類選擇器是一個(gè)點(diǎn)比如.demo{}而我們的偽類用2個(gè)點(diǎn)就是冒號(hào)比如:link{}:link/*未訪問的鏈接*/:visited/*已訪問的鏈接*/:hover/*鼠標(biāo)移動(dòng)到鏈接上*/:active/*選定的鏈接*/注意寫的時(shí)候,他們的順序盡量不要顛倒按照lvha的順序。四背景和盒子模型背景1.背景顏色background-color顏色和transparent透明色2.背景圖像background-image屬性3.背景重復(fù)方式background-repeat屬性repeat:沿水平和垂直兩個(gè)方向平鋪no-repeat:不平鋪,即只顯示一次repeat-x:只沿水平方向平鋪repeat-y:只沿垂直方向平鋪4.背景定位background-position屬性5.background簡(jiǎn)寫形式:background:#C00url(../image/arrow-down.gif)205px10pxno-repeat;6.background-size7.linear-gradient:顏色沿著一條直線過渡:從左到右、從右到左、從上到下等background:linear-gradient(totop,color1,color2);方向:totop,tolefttoright,tobottom盒子模型1.2邊框顏色border-color3.border-widththinmediumthick像素值4border-style:nonehiddendotteddashedsoliddouble5同時(shí)設(shè)置邊框的顏色、粗細(xì)和樣式6marginmargin-topmargin-rightmargin-bottommargin-leftmargin7網(wǎng)頁居中對(duì)齊網(wǎng)頁居中對(duì)齊的必要條件塊元素固定寬度8paddingpadding-leftpadding-rightpadding-toppadding-bottompadding9盒子模型總尺寸=border+padding+margin+內(nèi)容寬度10border-radius:20px10px50px30px;四個(gè)屬性值按順時(shí)針排列11利用border-radius屬性制作圓形的兩個(gè)要點(diǎn)元素的寬度和高度必須相同圓角的半徑為元素寬度的一半,或者直接設(shè)置圓角半徑值為50%12利用border-radius屬性制作半圓形的兩個(gè)要點(diǎn)制作上半圓或下半圓時(shí),元素的寬度是高度的2倍,而且圓角半徑為元素的高度值制作左半圓或右半圓時(shí),元素的高度是寬度的2倍,而且圓角半徑為元素的寬度值13利用border-radius屬性制作扇形遵循“三同,一不同”原則“三同”是元素寬度、高度、圓角半徑相同“一不同”是圓角取值位置不同14box-shadow:insetx-offsety-offsetblur-radiuscolor五浮動(dòng)和定位浮動(dòng)1標(biāo)準(zhǔn)文檔流:指元素根據(jù)塊元素或行內(nèi)元素的特性按從上到下,從左到右的方式自然排列。這也是元素默認(rèn)的排列方式標(biāo)準(zhǔn)文檔流組成:塊級(jí)元素(block)<h1>…<h6>、<p>、<div>、列表內(nèi)聯(lián)元素和行級(jí)元素(inline)<span>、<a>、<img/>、<strong>...內(nèi)聯(lián)標(biāo)簽可以包含于塊級(jí)標(biāo)簽中,成為它的子元素,而反過來則不成立2可以使用什么屬性使塊元素排在一行?1.inline-block2.float3屬性值說明left元素向左浮動(dòng)right元素向右浮動(dòng)none默認(rèn)值。元素不浮動(dòng),并會(huì)顯示在其文本中出現(xiàn)的位置4浮動(dòng)元素脫離標(biāo)準(zhǔn)文檔流清除浮動(dòng)值說明left在左側(cè)不允許浮動(dòng)元素right在右側(cè)不允許浮動(dòng)元素both在左、右兩側(cè)不允許浮動(dòng)元素none默認(rèn)值。允許浮動(dòng)元素出現(xiàn)在兩側(cè)6浮動(dòng)元素后面加空div:<divid="father"><divclass="layer01"><imgsrc="image/photo-1.jpg"alt="日用品"/></div><divclass="layer02"><imgsrc="image/photo-2.jpg"alt="圖書"/></div><divclass="layer03"><imgsrc="image/photo-3.jpg"alt="鞋子"/></div><divclass="layer04">浮動(dòng)的盒子……</div><divclass="clear"></div></div>.clear{clear:both;margin:0;padding:0;}7設(shè)置父元素的高度<divid="father"><divclass="layer01"><imgsrc="image/photo-1.jpg"alt="日用品"/></div><divclass="layer02"><imgsrc="image/photo-2.jpg"alt="圖書"/></div><divclass="layer03"><imgsrc="image/photo-3.jpg"alt="鞋子"/></div><divclass="layer04">浮動(dòng)的盒子……</div></div>#father{height:400px;border:1px#000solid;}8overflow屬性:屬性值說明visible默認(rèn)值。內(nèi)容不會(huì)被修剪,會(huì)呈現(xiàn)在盒子之外hidden內(nèi)容會(huì)被修剪,并且其余內(nèi)容是不可見的scroll內(nèi)容會(huì)被修剪,但是瀏覽器會(huì)顯示滾動(dòng)條以便查看其余內(nèi)容auto如果內(nèi)容被修剪,則瀏覽器會(huì)顯示滾動(dòng)條以便查看其余的內(nèi)容9父級(jí)添加overflow屬性<divid="father"><divclass="layer01"><imgsrc="image/photo-1.jpg"alt="日用品"/></div><divclass="layer02"><imgsrc="image/photo-2.jpg"alt="圖書"/></div><divclass="layer03"><imgsrc="image/photo-3.jpg"alt="鞋子"/></div><divclass="layer04">浮動(dòng)的盒子……</div></div>#father{overflow:hidden;border:1px#000solid;}10父級(jí)添加偽類after<divid="father"class="clear"><divclass="layer01"><imgsrc="image/photo-1.jpg"alt="日用品"/></div><divclass="layer02"><imgsrc="image/photo-2.jpg"alt="圖書"/></div><divclass="layer03"><imgsrc="image/photo-3.jpg"alt="鞋子"/></div><divclass="layer04">浮動(dòng)的盒子……</div></div>.clear:after{content:'';/*在clear類后面添加內(nèi)容為空*/display:block;/*把添加的內(nèi)容轉(zhuǎn)化為塊元素*/clear:both;/*清除這個(gè)元素兩邊的浮動(dòng)*/}11清除浮動(dòng),防止父級(jí)邊框塌陷的四種方法1浮動(dòng)元素后面加空div簡(jiǎn)單,空div會(huì)造成HTML代碼冗余2設(shè)置父元素的高度簡(jiǎn)單,元素固定高會(huì)降低擴(kuò)展性3父級(jí)添加overflow屬性簡(jiǎn)單,下拉列表框的場(chǎng)景不能用4父級(jí)添加偽類after寫法比上面稍微復(fù)雜一點(diǎn),但是沒有副作用,推薦使用12display:inline-block可以讓元素排在一行,并且支持寬度和高度,代碼實(shí)現(xiàn)起來方便位置方向不可控制,會(huì)解析空格IE6、IE7上不支持float可以讓元素排在一行并且支持寬度和高度,可以決定排列方向float浮動(dòng)以后元素脫離文檔流,會(huì)對(duì)周圍元素產(chǎn)生影響,必須在它的父級(jí)上添加清除浮動(dòng)的樣式定位position屬性 static:默認(rèn)值,沒有定位 relative:相對(duì)定位 absolute:絕對(duì)定位 fixed:固定定位1static屬性值2relative屬性值 相對(duì)自身原來位置進(jìn)行偏移偏移設(shè)置:top、left、right、bottom3absolute屬性值偏移設(shè)置:left、right、top、bottom4fixed屬性值偏移設(shè)置:left、right、top、bottom類似絕對(duì)定位,不過區(qū)別在于定位的基準(zhǔn)不是祖先元素,而是瀏覽器窗口5相對(duì)定位的特性相對(duì)于自己的初始位置來定位元素位置發(fā)生偏移后,它原來的位置會(huì)被保留下來層級(jí)提高,可以把標(biāo)準(zhǔn)文檔流中的元素及浮動(dòng)元素蓋在下邊相對(duì)定位的使用場(chǎng)景相對(duì)定位一般情況下很少自己?jiǎn)为?dú)使用,都是配合絕對(duì)定位使用,為絕對(duì)定位創(chuàng)造定位父級(jí)而又不設(shè)置偏移量6絕對(duì)定位的特性絕對(duì)定位是相對(duì)于它的定位父級(jí)的位置來定位,如果沒有設(shè)置定位父級(jí),則相對(duì)瀏覽器窗口來定位元素位置發(fā)生偏移后,原來的位置不會(huì)被保留層級(jí)提高,可以把標(biāo)準(zhǔn)文檔流中的元素及浮動(dòng)元素蓋在下邊設(shè)置絕對(duì)定位的元素脫離文檔流絕對(duì)定位的使用場(chǎng)景一般情況下,絕對(duì)定位用在下拉菜單、焦點(diǎn)圖輪播、彈出數(shù)字氣泡、特別花邊等場(chǎng)景7固定定位的特性相對(duì)瀏覽器窗口來定位偏移量不會(huì)隨滾動(dòng)條的移動(dòng)而移動(dòng)固定定位的使用場(chǎng)景一般在網(wǎng)頁中被用在窗口左右兩邊的固定廣告、返回頂部圖標(biāo)、吸頂導(dǎo)航欄等8調(diào)整元素定位時(shí)重疊層的上下位置z-index屬性值:整數(shù),默認(rèn)值為0設(shè)置了positon屬性時(shí),z-index屬性可以設(shè)置各元素之間的重疊高低關(guān)系z(mì)-index值大的層位于其值小的層上方六CSS3動(dòng)畫1會(huì)使用transform2D變形設(shè)置網(wǎng)頁元素樣式1如何在網(wǎng)頁中實(shí)現(xiàn)動(dòng)畫效果?動(dòng)態(tài)圖片F(xiàn)lashJavaScriptCSS3變形CSS3過渡CSS3動(dòng)畫2CSS3變形是一些效果的集合如平移、旋轉(zhuǎn)、縮放、傾斜效果每個(gè)效果都可以稱為變形(transform),它們可以分別操控元素發(fā)生平移、旋轉(zhuǎn)、縮放、傾斜等變化變形函數(shù)translate():平移函數(shù),基于X、Y坐標(biāo)重新定位元素的位置scale():縮放函數(shù),可以使任意元素對(duì)象尺寸發(fā)生變化rotate():旋轉(zhuǎn)函數(shù),取值是一個(gè)度數(shù)值skew():傾斜函數(shù),取值是一個(gè)度數(shù)值translateX(tx)表示只設(shè)置X軸的位移translateY(ty)表示只設(shè)置Y軸的位移translateX(tx)表示只設(shè)置X軸的位移translateY(ty)表示只設(shè)置Y軸的位移scale()函數(shù)可以只接收一個(gè)值,也可以接收兩個(gè)值,只有一個(gè)值時(shí),第二個(gè)值默認(rèn)和第一個(gè)值相等scaleX(sx):表示只設(shè)置X軸的縮放scaleY(sy):表示只設(shè)置Y軸的縮放可以僅設(shè)置沿著X軸或Y軸方向傾斜skewX(ax):表示只設(shè)置X軸的傾斜skewY(ay):表示只設(shè)置Y軸的傾斜skew()函數(shù)是傾斜,元素不會(huì)旋轉(zhuǎn),會(huì)改變?cè)氐男螤顓?shù)a單位使用deg表示參數(shù)a取正值時(shí)元素相對(duì)原來中心順時(shí)針旋轉(zhuǎn)rotate()函數(shù)只是旋轉(zhuǎn),而不會(huì)改變?cè)氐男螤顃ransition呈現(xiàn)的是一種過渡,是一種動(dòng)畫轉(zhuǎn)換的過程,如漸現(xiàn)、漸弱、動(dòng)畫快慢等CSS3transition的過渡功能更像是一種“黃油”,通過一些CSS的簡(jiǎn)單動(dòng)作觸發(fā)樣式平滑過渡過渡屬性(transition-property)定義轉(zhuǎn)換動(dòng)畫的CSS屬性名稱IDENT:指定的CSS屬性(width、height、background-color屬性等)all:指定所有元素支持transition-property屬性的樣式,一般為了方便都會(huì)使用all過渡所需的時(shí)間(transition-duration)定義轉(zhuǎn)換動(dòng)畫的時(shí)間長(zhǎng)度,即從設(shè)置舊屬性到換新屬性所花費(fèi)的時(shí)間,單位為秒(s)過渡所需的時(shí)間(transition-duration)定義轉(zhuǎn)換動(dòng)畫的時(shí)間長(zhǎng)度,即從設(shè)置舊屬性到換新屬性所花費(fèi)的時(shí)間,單位為秒(s)過渡動(dòng)畫函數(shù)(transition-timing-function)指定瀏覽器的過渡速度,以及過渡期間的操作進(jìn)展情況,通過給過渡添加一個(gè)函數(shù)來指定動(dòng)畫的快慢方式ease:速度由快到慢(默認(rèn)值)linear:速度恒速(勻速運(yùn)動(dòng))ease-in:速度越來越快(漸顯效果)ease-out:速度越來越慢(漸隱效果)ease-in-out:速度先加速再減速(漸顯漸隱效果)過渡動(dòng)畫函數(shù)(transition-timing-function)指定瀏覽器的過渡速度,以及過渡期間的操作進(jìn)展情況,通過給過渡添加一個(gè)函數(shù)來指定動(dòng)畫的快慢方式ease:速度由快到慢(默認(rèn)值)linear:速度恒速(勻速運(yùn)動(dòng))ease-in:速度越來越快(漸顯效果)ease-out:速度越來越慢(漸隱效果)ease-in-out:速度先加速再減速(漸顯漸隱效果)過渡延遲時(shí)間(transition-delay)指定一個(gè)動(dòng)畫開始執(zhí)行的時(shí)間,當(dāng)改變?cè)貙傩灾岛蠖嚅L(zhǎng)時(shí)間去執(zhí)行過渡效果正值:元素過渡效果不會(huì)立即觸發(fā),當(dāng)過了設(shè)置的時(shí)間值后才會(huì)被觸發(fā)負(fù)值:元素過渡效果會(huì)從該時(shí)間點(diǎn)開始顯示,之前的動(dòng)作被截?cái)?:默認(rèn)值,元素過渡效果立即執(zhí)行偽類觸發(fā):hover:active:focus:checked媒體查詢:通過@media屬性判斷設(shè)備的尺寸,方向等JavaScript觸發(fā):用JavaScript腳本觸發(fā)2會(huì)使用transition制作過渡動(dòng)畫在默認(rèn)樣式中聲明元素的初始狀態(tài)樣式聲明過渡元素最終狀態(tài)樣式,如懸浮狀態(tài)在默認(rèn)樣式中通過添加過渡函數(shù),添加一些不同的樣式3會(huì)使用animation制作網(wǎng)頁動(dòng)畫七Ajax理解Ajax技術(shù)Web2.0的特點(diǎn)用戶貢獻(xiàn)內(nèi)容內(nèi)容聚合RSS更豐富的“用戶體驗(yàn)無刷新:不刷新整個(gè)頁面,只刷新局部無刷新的好處只更新部分頁面,有效利用帶寬提供連續(xù)的用戶體驗(yàn)提供類似C/S的交互效果,操作更方便Ajax:異步刷新技術(shù)掌握jQuery的$.ajax()方法傳統(tǒng)方式實(shí)現(xiàn)Ajax的不足步驟繁瑣方法、屬性、常用值較多不好記憶處理復(fù)雜結(jié)構(gòu)的響應(yīng)數(shù)據(jù)(如XML格式)比較煩瑣瀏覽器兼容問題$.ajax({"url":"url",//要提交的URL路徑"type":"get",//發(fā)送請(qǐng)求的方式"data":data,//要發(fā)送到服務(wù)器的數(shù)據(jù)"dataType":"text",//指定傳輸?shù)臄?shù)據(jù)格式"success":function(result){//請(qǐng)求成功后要執(zhí)行的代碼 },"error":function(){//請(qǐng)求失敗后要執(zhí)行的代碼 }});掌握J(rèn)SON的使用JSON(JavaScriptObjectNotation)一種輕量級(jí)的數(shù)據(jù)交換格式采用獨(dú)立于語言的文本格式通常用于在客戶端和服務(wù)器之間傳遞數(shù)據(jù)JSON的優(yōu)點(diǎn)輕量級(jí)交互語言結(jié)構(gòu)簡(jiǎn)單易于解析掌握jQuery的$.get()和$.post()方法$.get(url[,data][,success][,dataType]);$.get(url,data,function(result){ //省略將服務(wù)器返回的數(shù)據(jù)顯示到頁面的代碼});$.ajax({ "url":url, "data":data, "type":"get", "success":function(result){ //省略代碼 }});$.post(url[,data][,success][,dataType]);$.post(url,data,function(result){ //省略將服務(wù)器返回的數(shù)據(jù)顯示到頁面的代碼});$.ajax({ "url":url, "data":data, "type":"post", "success":function(result){ //省略代碼 }});七使用jQuery操作DOM1使用jQuery操作CSS樣式DOM操作分為三類:DOMCore:任何一種支持DOM的編程語言都可以使用它,如getElementById()HTML-DOM:用于處理HTML文檔,如document.formsCSS-DOM:用于操作CSS,如element.style.color="green"jQuery對(duì)JavaScript中的DOM操作進(jìn)行了封裝jQuery中的DOM操作樣式操作內(nèi)容及Value值操作節(jié)點(diǎn)操作節(jié)點(diǎn)屬性操作節(jié)點(diǎn)遍歷CSS-DOM操作使用css()為指定的元素設(shè)置樣式值或獲取樣式值追加樣式selector).removeClass("class");或$(selector).removeClass("class1class2…classN");toggleClass()模擬了addClass()與removeClass()實(shí)現(xiàn)樣式切換的過程hasClass()方法來判斷是否包含指定的樣式html()可以對(duì)HTML代碼進(jìn)行操作,類似于JS中的innerHTMLtext()可以獲取或設(shè)置元素的文本內(nèi)容val()可以獲取或設(shè)置元素的value屬性值jQuery中節(jié)點(diǎn)操作查找節(jié)點(diǎn)(前面章節(jié)已講)創(chuàng)建節(jié)點(diǎn)插入節(jié)點(diǎn)刪除節(jié)點(diǎn)替換節(jié)點(diǎn)復(fù)制節(jié)點(diǎn)工廠函數(shù)$()用于獲取或創(chuàng)建節(jié)點(diǎn)$(selector):通過選擇器獲取節(jié)點(diǎn)$(element):把DOM節(jié)點(diǎn)轉(zhuǎn)化成jQuery節(jié)點(diǎn)$(html):使用HTML字符串創(chuàng)建jQuery節(jié)點(diǎn)jQuery提供了三種刪除節(jié)點(diǎn)的方法remove():刪除整個(gè)節(jié)點(diǎn)empty():清空節(jié)點(diǎn)內(nèi)容detach():刪除整個(gè)節(jié)點(diǎn),保留元素的綁定事件、附加的數(shù)據(jù),將移出的元素作為返回值,并且?guī)в袛?shù)據(jù)和事件replaceWith()和replaceAll()用于替換某個(gè)節(jié)點(diǎn)clone()用于復(fù)制某個(gè)節(jié)點(diǎn)attr()用來獲取與設(shè)置元素屬性removeAttr()用來刪除元素的屬性children()方法可以用來獲取元素的所有子元素jQuery可以獲取緊鄰其后、緊鄰其前和位于該元素前與后的所有同輩元素jQuery中可以遍歷前輩元素parent():獲取元素的父級(jí)元素parents():元素元素的祖先元素each():規(guī)定為每個(gè)匹配元素規(guī)定運(yùn)行的函數(shù)end():結(jié)束當(dāng)前鏈條中的最近的篩選操作,并將匹配元素集還原為之前的狀態(tài)除css()外,還有獲取和設(shè)置元素高度、寬度等的樣式操作方法使用jQuery操作網(wǎng)頁元素使用jQuery操作文本與屬性值內(nèi)容使用jQuery操作DOM節(jié)點(diǎn)使用jQuery遍歷DOM節(jié)點(diǎn)使用jQuery操作CSS-DOM八表單校驗(yàn)1掌握String對(duì)象的用法減輕服務(wù)器的壓力保證輸入的數(shù)據(jù)符合要求日期格式表單元素是否為空用戶名和密碼E-mail地址身份證號(hào)碼會(huì)使用表單選擇器選擇頁面元素表單選擇器用于選取某些特定的表單元素,比如所有單選按鈕或隱藏的元素語法描述示例:input匹配所有input、textarea、select和button元素$("#myform:input")選取表單中所有的input、select和button元素:text匹配所有單行文本框$("#myform:text")選取email和姓名兩個(gè)input元素:password匹配所有密碼框$("#myform:password"
)選取所有<inputtype="password"/>元素:radio匹配所有單項(xiàng)按鈕$("#myform:radio")選取<inputtype="radio"/>元素:checkbox匹配所有復(fù)選框$("#myform:checkbox"
)選取<inputtype="checkbox"/>元素:submit匹配所有提交按鈕$("#myform:submit"
)選取<inputtype="submit"/>元素語法描述示例:image匹配所有圖像域$("#myform:image"
)選取<inputtype="image"/>元素:reset匹配所有重置按鈕$("#myform:reset"
)選取<inputtype="reset"/>元素:button匹配所有按鈕$("#myform:button"
)選取button元素:file匹配所有文件域$("#myform:file"
)選取<inputtype="file"/>元素:hidden匹配所有不可見元素,或者type為hidden的元素$("#myform:hidden"
)選取<inputtype="hidden"/>、style="display:none"等元素語法描述示例:enabled匹配所有可用元素$("#userform:enabled"
)匹配form內(nèi)部除編號(hào)輸入框外的所有元素:disabled匹配所有不可用元素$("#userform:disabled"
)匹配編號(hào)輸入框:checked匹配所有被選中元素(復(fù)選框、單項(xiàng)按鈕、select中的option)$("#userform:checked"
)匹配“性別”中的“男”選項(xiàng)和“愛好”中的“編程”選項(xiàng):selected匹配所有選中的option元素$("#userform:selected"
)匹配“家鄉(xiāng)”中的“北京”選項(xiàng)會(huì)使用HTML5的方式驗(yàn)證表單內(nèi)容使用String對(duì)象驗(yàn)證郵箱不能為空,格式正確文本框內(nèi)容的驗(yàn)證密碼不能為空,不少于6個(gè)字符,姓名不能為空,不能有數(shù)字實(shí)現(xiàn)思路使用val()方法獲取文本框的值使用indexOf()來判斷字符串是否包含“@”和“.”使用方法submit()提交表單根據(jù)返回值是true還是false來決定是否提交表單字符串查找indexOf():查找某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置實(shí)現(xiàn)思路使用String對(duì)象的length屬性驗(yàn)證密碼的長(zhǎng)度驗(yàn)證兩次輸入密碼是否一致使用length屬性獲取文本長(zhǎng)度,然后使用for循環(huán)和substring()方法依次截?cái)鄦蝹€(gè)字符,最后判斷每個(gè)字符是否是數(shù)字三、實(shí)踐過程實(shí)踐周操作上機(jī)操作四、實(shí)驗(yàn)成果基于python的學(xué)生管理系統(tǒng)學(xué)生管理系統(tǒng)學(xué)生管理系統(tǒng)v1.0
1.添加學(xué)生的信息
2.刪除學(xué)生的信息
3.修改學(xué)生的信息
4.查詢學(xué)生的信息
5.遍歷所有學(xué)生的信息
6.退出系統(tǒng)開始django-adminstartprojectstudent_sys創(chuàng)建App進(jìn)入student_sys目錄中pythonmanage.pystartappstudent編寫Model層:fromdjango.dbimportmodelsclassStudent(models.Model):SEX_ITEMS=[(1,'男'),(2,'女'),(0,'未知'),]STATUS_ITEMS=[(0,'申請(qǐng)'),(1,'通過'),(2,'拒絕'),]name=models.CharField(max_length=128,verbose_name="姓名")sex=models.IntegerField(choices=SEX_ITEMS,verbose_name="性別")profession=models.CharField(max_length=128,verbose_name="職業(yè)")email=models.EmailField(verbose_name="Email")qq=models.CharField(max_length=128,verbose_name="QQ")phone=models.CharField(max_length=128,verbose_name="電話")status=models.IntegerField(choices=STATUS_ITEMS,default=0,verbose_name="審核狀態(tài)")created_time=models.DateTimeField(auto_now_add=True,editable=False,verbose_name="創(chuàng)建時(shí)間")def__str__(self):return'<Student:{}>'.format()classMeat:verbose_name=verbose_name_plural="學(xué)員信息"編寫admin.pyfromdjango.contribimportadminfrom.modelsimportStudentclassStudentAdmin(admin.ModelAdmin):list_display=('id','name','sex','profession','email','qq','phone','status','created_time')list_filter=('sex','status','created_time')search_fields=('name','profession')fieldsets=((None,{'fields':('name',('sex','profession'),('email','qq','phone'),'status',)}))admin.site.register(Student,StudentAdmin)配置settings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','student',]接下來在mysql中創(chuàng)建庫CREATEDATABASEstudent_sysCHARACTERSETutf8;接下來配置Django的默認(rèn)存儲(chǔ)數(shù)據(jù)庫配置settings.pyDATABASES={#'default':{#'ENGINE':'django.db.backends.sqlite3',#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),#}'default':{'ENGINE':'django.db.backends.mysql','HOST':'','PORT':'3306','NAME':'student_sys','USER':'你的mysql賬號(hào)','PASSWORD':'你的mysql密碼'}}創(chuàng)建數(shù)據(jù)庫遷移文件,創(chuàng)建表,創(chuàng)建用戶:pythonmanage.pymakemigrations#創(chuàng)建數(shù)據(jù)庫遷移文件pythonmanage.pymigrate#創(chuàng)建表pythonmanage.pycreatesuperuser#創(chuàng)建后臺(tái)登錄用戶開發(fā)學(xué)員管理系統(tǒng)的前臺(tái)開發(fā)小測(cè)試:創(chuàng)建視圖在student/views.py文件中:formdjango.shortcutsimportrenderdefindex(request): words=‘世界’ returnrender(request,‘index.html’,context={‘words’:words})在student這個(gè)App的目錄下創(chuàng)建templates文件夾再創(chuàng)建index.html頁面模板<!DOCTYPEhtml><html><head><title>學(xué)員管理系統(tǒng)</title></head><body> hello{{words}}!</body></html>要注意的是{{xxx}}這是模板語法xxx兩邊要有空格,這里的xxx的值是views.py中的render方法返回過來的接下來我們要去配置路由fromdjango.contribimportadminfromdjango.conf.urlsimporturlfromstudent.viewsimportindexurlpatterns=[url(r'^$',index,name='index'),url(r'^admin/',admin.site.urls),]接下來就可以啟動(dòng)web服務(wù)pythonmanage.pyrunserver輸出學(xué)生信息修改views.pyfromdjango.shortcutsimportrenderfrom.modelsimportStudentdefindex(request):students=Student.objects.all()returnrender(request,'index.html',context={'students':students})修改index.html代碼<!DOCTYPEhtml><html><head><title>學(xué)員管理系統(tǒng)</title></head><body><ul>{%forstudentinstudents%}<li>{{}}-{{student.get_status_display}}</li>{%endfor%}</ul></body></html>提交數(shù)據(jù)添加學(xué)生創(chuàng)建表單文件,在student目錄下創(chuàng)建forms.py它要跟views.py同級(jí)#-*-coding:utf-8-*-fromdjangoimportformsfrom.modelsimportStudentclassStudentForm(forms.ModelForm):defclean_qq(self):cleaned_data=self.cleaned_data['qq']ifnotcleaned_data.isdigit():returnforms.ValidationError('必須時(shí)數(shù)字')returnint(cleaned_data)classMeta:model=Studentfields=('name','sex','profession','status','email','qq','phone')修改視圖文件views.pyfromdjango.httpimportHttpResponseRedirectfromdjango.shortcutsimportrenderfromdjango.urlsimportreversefrom.formsimportStudentFormfrom.modelsimportStudentdefindex(request):students=Student.objects.all()ifrequest.method=='POST':form=StudentForm(request.POST)ifform.is_valid():form.save()returnHttpResponseRedirect(reverse('index'))else:form=StudentForm()context={'students':students,'form':form,}returnrender(request,'index.html',context=context)修改index頁面<!DOCTYPEhtml><html><head><title>學(xué)員管理系統(tǒng)</title></head><body><ul>{%forstudentinstudents%}<li>{{}}-{{student.get_status_display}}</li>{%endfor%}</ul><hr><formaction="/"method="post">{%csrf_token%}<table><tr><td>姓名</td><td>{{}}</td></tr><tr><td>性別</td><td>{{form.sex}}</td></tr><tr><td>職業(yè)</td><td>{{fession}}</td></tr><tr><td>審核狀態(tài)</td><td>{{form.status}}</td></tr><tr><td>郵箱</td><td>{{form.email}}</td></tr><tr><td>qq</td><td>{{form.qq}}</td></tr><tr><td>電話</td><td>{{form.phone}}</td></tr></table><inputtype="submit"value="添加"/></form></body></html>如果需要在頁面添加css和js則需要配置樣式的路由:在setting.py的最后面添加#Staticfiles(CSS,JavaScript,Images)#/en/2.2/howto/static-files/#STATIC_URL='/static/'#STATICFILES_DIRS=[#("css",os.path.join(STATIC_URL,'css')),#("img",os.path.join(STATIC_URL,'img')),#("js",os.path.join(STATIC_URL,'js')),#]STATIC_URL='/static/'HERE=os.path.dirname(os.path.abspath(__file__))HERE=os.path.join(HERE,'../')STATICFILES_DIRS=(#Putstringshere,like"/home/html/static"or"C:/www/django/static".#Alwaysuseforwardslashes,evenonWindows.#Don'tforgettouseabsolutepaths,notrelativepaths.os.path.join(HERE,'static/'),)在項(xiàng)目的根目錄下創(chuàng)建static文件夾在里面放置需要的靜態(tài)文件接下來需要在index.html頁面的頭部添加用戶登錄urls.py的配置fromdjango.contribimportadminfromdjango.conf.urlsimporturlfromstudent.viewsimportindexfromstudent.viewsimportloginurlpatterns=[url(r'^$',index,name='index'),url(r'^login/$',login,name='login'),url(r'^admin/',admin.site.urls),]models.py配置classUser(models.Model):username=models.CharField(max_length=16)password=models.CharField(max_length=32)views.py配置fromdjango.httpimportHttpResponseRedirectfromdjango.shortcutsimportrender,redirect,HttpResponsefromdjango.urlsimportreversefrom.formsimportStudentFormfrom.modelsimportStudent,Usersfromfunctoolsimportwraps#說明:這個(gè)裝飾器的作用,就是在每個(gè)視圖函數(shù)被調(diào)用時(shí),都驗(yàn)證下有沒有登錄,#如果登錄了,則可執(zhí)行新的視圖函數(shù),如果沒有登錄則跳轉(zhuǎn)到登錄頁面defcheck_login(f):@wraps(f)definner(request,*arg,**kwargs):ifrequest.session.get('is_login')=='1':returnf(request,*arg,**kwargs)else:returnredirect('/login/')returninnerdeflogin(request):ifrequest.method=="POST":username=request.POST.get('username')password=request.POST.get('password')u=Users.objects.filter(username=username,password=password)ifu:#登錄成功,session存儲(chǔ)相應(yīng)的數(shù)據(jù)request.session['is_login']='1'request.session['user_id']=u[0].idprint(u[0].id)returnredirect('/')#如果是GET請(qǐng)求,就說明是用戶剛開始登錄,使用URL直接進(jìn)入登錄頁面的returnrender(request,'login.html')@check_logindefindex(request):user_id1=request.session.get('user_id')userobj=Users.objects.filter(id=user_id1)students=Student.objects.all()#returnrender(request,'index.html',context={'students':students})ifrequest.method=='POST':form=StudentForm(request.POST)ifform.is_valid():#cleaned_data=form.cleaned_data#student=Student()#=cleaned_data['name']#student.sex=cleaned_data['sex']#student.email=cleaned_data['email']#fession=cleaned_data['profession']#student.qq=cleaned_data['qq']#student.phone=cleaned_data['phone']#student.save()form.save()returnHttpResponseRedirect(reverse('index'))else:form=StudentForm()context={'students':students,'form':form,'loginuser':userobj[0],}returnrender(request,'index.html',context=context)添加login.html頁面模板<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>登錄</title></head><body><h1>用戶登錄</h1><formaction="/login/"method="post">{%csrf_token%}用戶名:<inputtype="text"name="username"><br>密碼:<inputtype="password"name="password"><br><inputtype="submit"></form></body></html>修改index.html頁面,添加顯示登錄人姓名<!DOCTYPEhtml><html><head><title>學(xué)員管理系統(tǒng)</title><linkrel="stylesheet"href="../static/css/index.css"><scriptsrc="../static/js/myjs.js"></script></head><body><p>歡迎:{{loginuser.username}}登錄</p><ul>{%forstudentinstudents%}<li>{{}}-{{student.get_status_display}}</li>{%endfor%}</ul><hr><formaction="/"method="post">{%csrf_token%}<table><tr><td>姓名</td><td>{{}}</td></tr><tr><td>性別</td><td>{{form.sex}}</td></tr><tr><td>職業(yè)</td><td>{{fession}}</td></tr><tr><td>審核狀態(tài)</td><td>{{form.status}}</td></tr><tr><td>郵箱</td><td>{{form.email}}</td></tr><tr><td>qq</td><td>{{form.qq}}</td></tr><tr><td>電話</td><td>{{form.phone}}</td></tr></table><!--{{form}}--><inputtype="submit"value="添加"/></form></body></html>因?yàn)樾略隽四P?,所以需要進(jìn)行數(shù)據(jù)配置pythonmanage.pymakemigrations#創(chuàng)建數(shù)據(jù)庫遷移文件pythonmanage.pymigrate#創(chuàng)建表修改學(xué)生信息修改urls.pyfromdjango.contribimportadminfromdjango.conf.urlsimporturlfromstudent.viewsimportindex,login,editstudenturlpatterns=[url(r'^$',index,name='index'),url(r'^login/$',login,name='login'),url(r'^editstudent',editstudent,name='editstudent'),url(r'^admin/',admin.site.urls),]修改index.html{%forstudentinstudents%}<li>{{}}-{{student.get_status_display}}<ahref="/editstudent?userid={{student.id}}">修改</a></li>{%endfor%}創(chuàng)建editstudent.html頁面模板<!DOCTYPEhtml><html><head><title>修改</title></head><body><p>歡迎:{{loginuser.username}}登錄</p><hr><formaction="/editstudent"method="post">{%csrf_token%}<table><tr><td>姓名</td><td>{{}}</td></tr><tr><td>性別</td><td>{{form.sex}}</td></tr><tr><td>職業(yè)</td><td>{{fession}}</td></tr><tr><td>審核狀態(tài)</td><td>{{form.status}}</td></tr><tr><td>郵箱</td><td>{{form.email}}</td></tr><tr><td>qq</td><td>{{form.qq}}</td></tr><tr><td>電話</td><td>{{form.phone}}</td></tr></table><inputtype="hidden"name="eduid"value="{{uid}}"><inputtype="submit"value="修改"/></form></body></html>修改views.py@check_logindefeditstudent(request):user_id1=request.session.get('user_id')userobj=Users.objects.filter(id=user_id1)eduid=-1ifrequest.method=='POST':print()eduid=request.POST.get("eduid")editstu=Student.obj
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美容師招聘面試流程及技能考核標(biāo)準(zhǔn)
- 深度解析(2026)《GBT 18953-2003橡膠配合劑 硬脂酸 定義及試驗(yàn)方法》(2026年)深度解析
- 醫(yī)療行業(yè)護(hù)士面試題庫及答案解析
- 超市水果品控主管績(jī)效考核含答案
- 勾扳手項(xiàng)目可行性分析報(bào)告范文(總投資13000萬元)
- 軟件測(cè)試崗位面試問題及應(yīng)對(duì)策略
- 網(wǎng)絡(luò)安全工程師專業(yè)面試問題解析
- 特殊疾病終末期認(rèn)知照護(hù)的個(gè)體化方案
- 供應(yīng)鏈管理采購經(jīng)理面試題及答案
- 產(chǎn)品創(chuàng)新設(shè)計(jì)思維及用戶體驗(yàn)測(cè)試方法含答案
- 籃球智慧樹知到期末考試答案2024年
- 質(zhì)量問題分析解決七步法
- 《企業(yè)估值方法》課件
- 皮影藝術(shù)資源引入初中美術(shù)教學(xué)的應(yīng)用研究
- 貴州省生態(tài)文明教育讀本(高年級(jí)) -教案(教學(xué)設(shè)計(jì))
- 《財(cái)務(wù)會(huì)計(jì)-學(xué)習(xí)指導(dǎo)習(xí)題與實(shí)訓(xùn)》全書參考答案
- 2021大慶讓胡路萬達(dá)廣場(chǎng)商業(yè)購物中心開業(yè)活動(dòng)策劃方案預(yù)算-67P
- 2023年考研考博-考博英語-湖南師范大學(xué)考試歷年真題摘選含答案解析
- 英語電影的藝術(shù)與科學(xué)智慧樹知到答案章節(jié)測(cè)試2023年中國(guó)海洋大學(xué)
- 2023-2024學(xué)年新疆維吾爾自治區(qū)烏魯木齊市小學(xué)數(shù)學(xué)六年級(jí)上冊(cè)期末??紲y(cè)試題
- GB/T 15814.1-1995煙花爆竹藥劑成分定性測(cè)定
評(píng)論
0/150
提交評(píng)論