電工導論教學材料實驗四_第1頁
電工導論教學材料實驗四_第2頁
電工導論教學材料實驗四_第3頁
電工導論教學材料實驗四_第4頁
電工導論教學材料實驗四_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

實驗四web.pyweb框架web.py簡單搜索引擎Web框架Web開發(fā)前端網(wǎng)頁后端數(shù)據(jù)庫Query&Request框架,即framework。其實就是某種應用的半成品,把不同應用程序中有共性的一些東西抽取出來,做成一個半成品程序,這樣的半成品就是所謂的程序框架。好處:減少重復開發(fā)工作量、縮短開發(fā)時間、降低開發(fā)成本。同時還有其它的好處,如:使程序設計更合理、程序運行更穩(wěn)定等。J2EE(Java),ASP.NET(C#),RubyonRails(Ruby),Mojolicious(Perl),…Web框架——Python重量級Zope中量級DjangoQuixote輕量級PylonsTurboGears迷你級Tornadoweb.pyBottle&Flask其他web2py、uliweb、Karrigell、Werkzeug…web.py最簡單的web開發(fā)框架之一簡單示例程序web.py——安裝在下載web.py-0.37.tar.gz安裝或在cmd中運行

easy_installweb.py在IDLE中輸入>>importweb如果沒有報錯,則安裝成功。web.py——例程對于一個站點來說,URL的組織是最重要的一個部分,因為這是用戶看得到的部分,而且直接影響到站點是如何工作的,在著名的站點如:del.icio.us,其URLs甚至是網(wǎng)頁界面的一部分。而web.py以簡單的方式就能夠構(gòu)造出一個強大的URLs。在每個web.py應用,必須先importweb模塊:>>importwebURL組織>>urls=('/','index')第一部分(’/’)是一個匹配URL的正則表達式,像/,/help/faq,/item/(\d+),等等;第二部分(’index’)是一個類名,匹配的請求將會被發(fā)送過去。web.py——例程(續(xù))用戶通過URLs(例如/或者/foo?f=1)來請求web服務器完成一定請求(例如GET或者POST)。GET是最普遍的方法,用來請求一個頁面。當我們在瀏覽器里輸入“”的時候,實際上它是向Web服務器請求GET”/“。另一個常見的方法是POST,常用于提交特定類型的表單,例如利用信用卡付費和處理一個訂單。Index類>>classindex:

>>defGET(self):

>>print"Hello,world!“當接收到一個GET請求時,上面的GET方法將會被web.py調(diào)用。啟動網(wǎng)頁應用>>if__name__=="__main__":>>app=web.application(urls,globals())>>app.run()上面告訴web.py如何配置URLs,以及找尋的類在文件中的全局命名空間。一個完整的web.py應用完成,保存為code.pyweb.py——調(diào)用在命令行輸入$pythoncode.py或IDLE下打開code.py并運行下一行會顯示

Launchingserver:你的web.py應用已經(jīng)啟動了服務器。通過瀏覽器訪問,會見到”Hello,world!”。在啟動服務器的時候,你可以在pythoncode.py后面添加IP地址/端口來控制web.py啟動的服務器。例如:pythoncode.py8888。IDLE運行code.py后,*PythonShell*顯示:打開瀏覽器,在地址欄輸入:,*PythonShell*顯示:web.py——模板在Python里面編寫HTML代碼是相當累贅的,而在HTML里嵌入Python代碼則有趣得多。幸運地,web.py使這過程變得相當容易。在我們的web應用里(存放code.py的文件夾),添加一個新的文件夾用來組織模板文件(例如”/templates“)。然后再新建一個HTML文件(例如:”index.html”):在index.html中輸入(注意縮進):$defwith(name)

$ifname:

Ijustwantedtosay<em>hello</em>to$name.

$else:

<em>Hello</em>,world!模板看上去跟這Python文件很相似,以defwith語句開始,但在關(guān)鍵字前需要添加”$“。關(guān)于模板的更多內(nèi)容:web.py——模板(續(xù))回到code.py文件,在”importweb”的下一行添加:>>render=web.template.render('templates/')這告訴web.py在哪里可以搜索得到模板目錄。提示:可在render調(diào)用里添加cache=False使得每次訪問頁面時都重載模板。下面繼續(xù)修改code.py文件的GET方法:>>defGET(self,name):

>>returnrender.index(name)上面的”index“是模板的名字(對應html文件的名字),”name“是傳遞過去的參數(shù)。修改code.py文件的urls變量:>>urls=('/(.*)','index')上面的“/(.*)”是一個正則表達式?,F(xiàn)在,訪問”/“的話,會顯示”Hello,world!“;訪問”/Joe“的話,會顯示”IjustwanttosayhellotoJoe“。web.py——模板(續(xù))web.py——表單web.py的form模塊可進行建立html表單,得到用戶輸入,驗證、導入數(shù)據(jù)庫等操作。Form模塊為2個類:Formclass和InputclassInputclass下屬子類包括:Textbox,Password,Textarea,Dropdown,Radio,Checkbox,Button例子:>>login=form.Form(>>form.Textbox('username'),>>form.Password('password'),>>form.Button('Login'),>>)調(diào)用:>>f=login()>>printf.render()顯示:更多參考:練習1.使用web.py,結(jié)合前面學習的HTML,Lucene,中文分詞等知識點,根據(jù)上次實驗爬取的網(wǎng)頁,建立一個簡單的搜索引擎。搜索界面:結(jié)果界面:練習結(jié)果要求:標題超鏈接關(guān)鍵詞上下文網(wǎng)址練習使用web.py建立web開發(fā)框架提示:搜索界面和結(jié)果界面兩部分,可建立兩個類,如:urls=('/','index','/s','s')其中,根目錄(:8080)生成搜索框,由index類處理;得到用戶輸入后則由s類處理。表單示例:login=form.Form(form.Textbox('keyword'),form.Button('Search'),)練習Index類和s類示例:classindex:defGET(self):f=login()returnrender.formtest(f)classs:defGET(self):user_data=web.input()a=func(user_data.keyword)returnrender.result(a)其中,formtest為顯示表單的模板文件,result為顯示搜索結(jié)果的模板文件。func函數(shù)中使用Lucene進行搜索過程并得到結(jié)果。練習Lucene中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論