版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023pythonWeb篇Flask140.Flask藍(lán)圖(Blueprint)的理解?藍(lán)圖的定義Flask擴(kuò)展供給了一種在應(yīng)用中注冊(cè)效勞的集中式機(jī)制。藍(lán)圖的應(yīng)用場(chǎng)景:例化一個(gè)應(yīng)用對(duì)象,初始化幾個(gè)擴(kuò)展,并注冊(cè)一集合的藍(lán)圖。URL前綴和或子域名,在應(yīng)用上注冊(cè)一個(gè)藍(lán)圖。URL前綴子域名中的參數(shù)即成為這個(gè)藍(lán)圖下的全部視圖函數(shù)的共同的視圖參數(shù)〔默認(rèn)狀況下〕URL規(guī)章屢次注冊(cè)一個(gè)藍(lán)圖。現(xiàn)應(yīng)用或視圖函數(shù)。藍(lán)圖的缺點(diǎn):使用藍(lán)圖的三個(gè)步驟創(chuàng)立一個(gè)藍(lán)圖對(duì)象blueblue=Blueprint(“blue“, name )在這個(gè)藍(lán)圖對(duì)象上進(jìn)展操作,例如注冊(cè)路由、指定靜態(tài)文件夾、注冊(cè)模板過(guò)濾器...@blue@blue.route(”/”)defblue_index:return“myblueprint“在應(yīng)用對(duì)象上注冊(cè)這個(gè)藍(lán)圖對(duì)象appapp.register_blueprint(blue,url_prefix=“/blue“)FlaskDjango路由映射的區(qū)分?django中,路由是掃瞄器訪問(wèn)效勞器時(shí),先訪問(wèn)的工程中的Django什么是wsgi,uwsgi,uWSGI?WSGI:web效勞器網(wǎng)關(guān)接口,是一套協(xié)議。用于接收用戶懇求并將懇求進(jìn)展初次封web框架?!瞕jango)
質(zhì)上就是編寫(xiě)一socket效勞端,用于接收用socket效勞端,用于接收用戶懇求(flask)uwsgi:與WSGI一樣是一種通信協(xié)議,它是uWSGI效勞器的獨(dú)占協(xié)議,用于定義傳uWSGI:web效勞器,實(shí)現(xiàn)了WSGI的協(xié)議,uWSGI協(xié)議,協(xié)議Django、Flask、Tornado的比照?1DjangoMTV框架,自帶的ORM,admin后臺(tái)治理sqlit數(shù)據(jù)庫(kù)和開(kāi)發(fā)測(cè)試用的效勞器,給開(kāi)發(fā)者框架,功能齊全,供給一站式解決的思路,能讓開(kāi)發(fā)者不用在選擇上花費(fèi)大量時(shí)間。ORMjinj等非官方模板引擎。需要使用第三方庫(kù)自帶數(shù)據(jù)庫(kù)治理app做企業(yè)級(jí)網(wǎng)站的開(kāi)發(fā)。pythonweb框架的先驅(qū),第三方庫(kù)豐富2Flask是輕量級(jí)的框架,自由,敏捷,可擴(kuò)展性強(qiáng),核心基于Werkzeug計(jì),而與非關(guān)系型數(shù)據(jù)庫(kù)的結(jié)合遠(yuǎn)遠(yuǎn)優(yōu)于Django3Tornado走的是少而精的方向,性能優(yōu)越,它最知名的異步非堵塞的設(shè)計(jì)方式Tornado的兩大核心模塊:ioloop:對(duì)I/O多路復(fù)用的封裝它實(shí)現(xiàn)一個(gè)單例CORS和CSRF的區(qū)分?CORS?CORS是一個(gè)W3C標(biāo)準(zhǔn)全稱是跨域資源共享“(Cross-originresouresharing).它允許掃瞄器向跨源效勞器,發(fā)出XMLRequest懇求,從而客服了AJAXCSRF?tokensession中。每次表單提交到后端時(shí)都會(huì)檢查這兩個(gè)值是否全都,以此來(lái)推斷此次表單提交是否是可信的,提交token,token將會(huì)被清空假設(shè)tokenPOST表單提交,但是token都無(wú)濟(jì)于事。Session,Cookie,JWT的理解為什么要使用會(huì)話治理眾所周知,協(xié)議是一個(gè)無(wú)狀態(tài)的協(xié)議,也就是說(shuō)每個(gè)懇求都是一個(gè)獨(dú)立小局部額外信息,也做為懇求的一局部,這樣效勞端就可以依據(jù)上下文中的信息,針對(duì)具體的用戶進(jìn)展操作。所以這幾種技術(shù)的消滅都是對(duì)協(xié)議的一協(xié)議+狀態(tài)治理構(gòu)建一個(gè)的面對(duì)用戶的WEB應(yīng)用。SessionCookie的區(qū)分sessioncookiessessioncookies最核心區(qū)分cookies來(lái)實(shí)現(xiàn)會(huì)話治理時(shí),用戶的相關(guān)信息或者其他我們想要保持在每個(gè)懇求中的信息,都是放在cookies中而cookies是由客戶端來(lái)保存,每當(dāng)客戶端發(fā)出懇求時(shí),就會(huì)稍帶上session來(lái)進(jìn)展會(huì)話治理時(shí),客戶端session_idsession_id可以在效勞端復(fù)原出所需要的全部狀態(tài)信息,從這里可以看出這局部信息是由效勞端來(lái)維護(hù)的。除此以外,session與cookiescookies的安全性不cookies進(jìn)展哄騙或者利用cookies進(jìn)展CSRFsession在肯定的時(shí)間里,需要存放在效勞端,因此當(dāng)擁有大量用戶時(shí),也會(huì)大幅度降低效勞端的session.(redi集群也就是說(shuō),用戶第一個(gè)訪問(wèn)的時(shí)候是效勞器A,而其次個(gè)懇求被轉(zhuǎn)發(fā)給了效勞器B,B如何得知其狀態(tài)。實(shí)際上,sessioncookies是有聯(lián)系的,比方cookies中的。JWT是如何工作的首先用戶發(fā)出登錄懇求,效勞端依據(jù)用戶的登錄懇求進(jìn)展匹配,假設(shè)匹配成功,將相關(guān)的信息放入payload中,利用算法,加上效勞端的密鑰生成token,這里需要留意的是secret_key很重要,假設(shè)這個(gè)泄露的話,客戶端就可以隨機(jī)篡改發(fā)送的額外信息,它是信息完整性的保證。生成token后效勞端將其返回給客戶端,客戶端可以在下次懇求時(shí),將token一起交給效勞端,一Authorizatio簡(jiǎn)述Django懇求生命周期問(wèn)視圖函數(shù),假設(shè)不涉及到數(shù)據(jù)調(diào)用,那么這個(gè)時(shí)候視圖函數(shù)返回一個(gè)模板也就是一個(gè)網(wǎng)頁(yè)給用戶〕返回,視圖函數(shù)把返回的數(shù)據(jù)填充到模板中空格中,最終返回網(wǎng)頁(yè)給用戶。中間件,對(duì)懇求進(jìn)展校驗(yàn)或在懇求對(duì)象中添加其他相關(guān)數(shù)據(jù),例如csrf,request.sessionurl去匹配不同的視圖函數(shù)視圖函數(shù),在視圖函數(shù)中進(jìn)展業(yè)務(wù)規(guī)律的處理,可能涉及到:ormtemplates中間件,對(duì)響應(yīng)的數(shù)據(jù)進(jìn)展處理wsgi,將響應(yīng)的內(nèi)容發(fā)送給掃瞄器用的restframeworkapi發(fā)送時(shí)間時(shí)區(qū)apiclassclassgetCurrenttime(APIView):defget(self,request):local_time=time.localtimetime_zone=settings.TIME_ZONEtemp={”localtime”:local_time,”timezone”:time_zone}returnResponse(temp)nginx,tomcat,apach到都是什么?Nginx〔engine和反向代理效勞器,也是一個(gè)IMAP/POP3/SMTP 效勞器,工作在OSI七層,負(fù)載的實(shí)現(xiàn)方式:輪詢,IP_HASH,fair,session_sticky.ApacheServer一個(gè)模塊化的效勞器,NCSAdTomcat效勞器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web應(yīng)用JSP程序的首選。請(qǐng)給出你生疏關(guān)系數(shù)據(jù)庫(kù)范式有哪些,有什么作用?能設(shè)計(jì)出沒(méi)有數(shù)據(jù)冗余和數(shù)據(jù)維護(hù)特別的數(shù)據(jù)庫(kù)構(gòu)造。1.數(shù)據(jù)庫(kù)設(shè)計(jì)的第一范式最基下幾個(gè)特點(diǎn):數(shù)據(jù)庫(kù)表中的全部字段都只具有單一屬性,單一屬性的列是由根本的數(shù)據(jù)類型〔整型,浮點(diǎn)型,字符型等〕所構(gòu)成的設(shè)計(jì)出來(lái)的表都是簡(jiǎn)潔的二比表數(shù)據(jù)庫(kù)設(shè)計(jì)的其次范式是在第一范式的根底上設(shè)計(jì)的),要求一個(gè)表中只具有一個(gè)業(yè)務(wù)主鍵,也就是說(shuō)符合其次范式的表中不能存在非主鍵列對(duì)只對(duì)局部主鍵的依靠關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的第三范式,指每一個(gè)非主屬性既不局部依靠與也不傳遞依靠于業(yè)務(wù)主鍵,也就是其次范式的根底上消退了非主屬性對(duì)主鍵的傳遞依靠QQ登陸過(guò)程qq登錄,在我們的工程中分為了三個(gè)接口,第一個(gè)接口是懇求qq效勞器返回一個(gè)qq登錄的界面;其次個(gè)接口是通過(guò)掃碼或賬號(hào)登陸進(jìn)展驗(yàn)證,qq效勞器返回給掃瞄器一個(gè)codestate用這個(gè)code通過(guò)本地效勞器去向qq效勞器獵取access_token覆返回給本地效勞器,憑借access_tokenqq效勞器獵取用openid(openid用戶的唯一標(biāo)識(shí))第三個(gè)接口是推斷用戶是否是第一次qq登錄,假設(shè)不是的話直接登錄返回的openidtoken進(jìn)展綁定post和get的區(qū)分?GET是從效勞器上獵取數(shù)據(jù),POST是向效勞器傳送數(shù)據(jù)在客戶端,GET方式在通過(guò)URLURL中可以看到,POST方式,數(shù)據(jù)放置在HTML——HEADER 內(nèi)提交GET方式,效勞器端用Request.QueryString獵取變量的值,對(duì)POST方式,效勞器端用Request.Form獵取提交的數(shù)據(jù)152.工程中日志的作用一、日志相關(guān)概念日志是一種可以追蹤某些軟件運(yùn)行時(shí)所發(fā)生大事的方法軟件開(kāi)發(fā)人員可以向他們的代碼中調(diào)用日志記錄相關(guān)的方法來(lái)說(shuō)明發(fā)生了某些事情一個(gè)大事可以用一個(gè)包含可選變量數(shù)據(jù)的消息來(lái)描述(level)二、日志的作用log的分析,可以便利用戶了解系統(tǒng)或軟件、應(yīng)用的運(yùn)行狀況;log足夠豐富,可以分析以往用戶的操作行為、類型喜好,地域分布或其他更多信息;log同時(shí)也分了多個(gè)級(jí)別,那么可以很輕易地分析得到該應(yīng)用的安康狀況,準(zhǔn)時(shí)覺(jué)察問(wèn)題并快速定位、解決問(wèn)題,補(bǔ)救損失。簡(jiǎn)潔來(lái)講就是我們通過(guò)記錄和分析日志可以了解一個(gè)系統(tǒng)或軟件程序運(yùn)行狀況運(yùn)維中日志也很重要,日志的作用也可以簡(jiǎn)潔。總結(jié)為以下幾點(diǎn):程序調(diào)試了解軟件程序運(yùn)行狀況,是否正常3,軟件程序運(yùn)行故障分析與問(wèn)題定位4,假設(shè)應(yīng)用的日志信息足夠具體和豐富,還可以用來(lái)做用戶行為分析153.django中間件的使用?Django在中間件中預(yù)置了六個(gè)方法,這六個(gè)方法的區(qū)分在于不同的階段執(zhí)行,對(duì)輸入或輸出進(jìn)展干預(yù),方法如下:初始化:無(wú)需任何參數(shù),效勞器響應(yīng)第一個(gè)懇求的時(shí)候調(diào)用一次,用于確定是否啟用當(dāng)前中間件defdef init passNoneResponse對(duì)象。defdefprocess_request(request):pass處理視圖前NoneResponse對(duì)象。defdefprocess_view(request,view_func,view_args,view_kwargs):pass處理模板響應(yīng)前:在每個(gè)懇求上調(diào)用,返回實(shí)現(xiàn)了render方法的響應(yīng)對(duì)象。defdefprocess_template_response(request,response):pass處理響應(yīng)后:全部響應(yīng)返回掃瞄器之前被調(diào)用,在每個(gè)懇求上調(diào)用,返Response對(duì)象。defdefprocess_response(request,response):pass特別處理:當(dāng)視圖拋出特別時(shí)調(diào)用,在每個(gè)懇求上調(diào)用,返回一Response對(duì)象。defdefprocess_exception(request,exception):pass154.uWSGInginx的理解?uWSGI是一個(gè)Web效勞器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、等協(xié)議。uWSGI效勞器進(jìn)展交換。WSGI是一種Web效勞器網(wǎng)關(guān)接口。它是一個(gè)Web效勞器〔如nginx,uWSGI等效勞器〕web應(yīng)用〔Flask框架寫(xiě)的程序〕通信的一種標(biāo)準(zhǔn)。要留意WSGI/uwsgi/uWSGI 這三個(gè)概念的區(qū)分。WSGI是一種通信協(xié)議。uWSGI效勞器與其他網(wǎng)絡(luò)效勞器的數(shù)據(jù)通信。uWSGIuwsgi和WSGI兩種協(xié)議的Web效勞器。nginx效勞器和反向代理:1.作為web效勞器,它處理靜態(tài)文件和索引文件效果格外高5萬(wàn)個(gè)并發(fā)連接,但只占用很少的內(nèi)存空間穩(wěn)定性高,配置簡(jiǎn)潔。強(qiáng)大的反向代理和負(fù)載均衡功能,平衡集群中各個(gè)效勞器的負(fù)載壓力應(yīng)用Python中三大框架各自的應(yīng)用場(chǎng)景?django進(jìn)展二次開(kāi)發(fā),比方把整個(gè)笨重的框架給拆掉掉,自己編寫(xiě)封裝與數(shù)據(jù)庫(kù)交互的框架,ORM雖然面對(duì)對(duì)象來(lái)操作數(shù)據(jù)庫(kù),但flask量級(jí),主要是用Flask本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎全部的功能都要用到擴(kuò)展Flask-Mai,用戶認(rèn)證ORM、文件上傳、身份驗(yàn)證等。Flask沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù),你可以選擇MySQLNoSQL。其WSGI工具箱用Werkzeug(路由模塊Flask框架的核心。
兩個(gè)也是Tornado:Tornado是一種Web效勞器軟件的開(kāi)源版本。Tornado和現(xiàn)在的主流Web效勞器框架〔包括大多數(shù)Python的框架〕有著明顯的區(qū)分:它是非堵塞式效勞器,而且速度相當(dāng)快。得利于其非堵塞的方式和對(duì)epoll的運(yùn)用,TornadoTornado是實(shí)時(shí)Web效勞的一個(gè)抱負(fù)框架Django中哪里用到了線程?哪里用到了協(xié)程?哪里用到了進(jìn)程?Django中耗時(shí)的任務(wù)用一個(gè)進(jìn)程或者線程來(lái)執(zhí)行,比方發(fā)郵件,使用celery.部署django工程是時(shí)候,配置文件中設(shè)置了進(jìn)程和協(xié)程的相關(guān)配置。DjangoRESTframework嗎?DjangoRESTframework是一個(gè)強(qiáng)大而敏捷的WebAPI工具。使用RESTframework的理由有:WebbrowsableAPI對(duì)開(kāi)發(fā)者有極大的好處OAuth1aOAuth2的認(rèn)證策略O(shè)RMORM數(shù)據(jù)資源的序列化function-basedviews額外的文檔和強(qiáng)大的社區(qū)支持cookiessession的了解?他們能單獨(dú)用嗎?Session承受的是在效勞器端保持狀態(tài)的方案,而Cookie承受的是在客戶端保Cookie就不能得到SessionSession是用SessionIDSessionSessionID是通過(guò)Cookie來(lái)傳遞的,禁用CookieSessionID,Session。爬蟲(chóng)試列出至少三種目前流行的大型數(shù)據(jù)庫(kù)列舉您使用過(guò)的Python網(wǎng)絡(luò)爬蟲(chóng)所用到的網(wǎng)絡(luò)數(shù)據(jù)包?requests,urllib,urllib2,lib2爬取數(shù)據(jù)后使用哪個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的,為什么?你用過(guò)的爬蟲(chóng)框架或者模塊有哪些??jī)?yōu)缺點(diǎn)?第三方:requestsScrapy
塊都做與懇求URL相關(guān)的操作,但他們供給不同的功能。urllib2:RequestRequest對(duì)URLurlliurlencode,urlli2urllib,urli2一起使用的緣由scrapy是封裝起來(lái)的框架,他包含了下載器,解析器,日志及特別處理,基于100個(gè)網(wǎng)站,并發(fā)及分布式處理不夠敏捷,不便調(diào)整與擴(kuò)展requests庫(kù),它只是用來(lái)懇求,它是一個(gè)強(qiáng)大的庫(kù),下載,解析全部自己處理,敏捷
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度5人合伙國(guó)際貿(mào)易合作協(xié)議3篇
- 游戲開(kāi)發(fā)行業(yè)產(chǎn)品功能免責(zé)合同
- 教育課程錄制協(xié)議
- 養(yǎng)老服務(wù)機(jī)構(gòu)委托管理協(xié)議
- 二零二五年度家庭養(yǎng)老護(hù)理員護(hù)理技能培訓(xùn)與雇傭合同3篇
- 二零二五年度家具拆除與搬遷服務(wù)合同樣本3篇
- 寵物醫(yī)療誤診事故免責(zé)協(xié)議書(shū)
- 2025年度生物制藥研發(fā)與許可合同協(xié)議書(shū)2篇
- 二零二五年度商砼產(chǎn)品知識(shí)產(chǎn)權(quán)保護(hù)與合作開(kāi)發(fā)合同3篇
- 2024年油氣田勘探與開(kāi)采技術(shù)服務(wù)合同
- 青島版數(shù)學(xué)五年級(jí)上冊(cè)解方程練習(xí)200道及答案
- 農(nóng)產(chǎn)品推廣合同協(xié)議書(shū)
- 工程機(jī)械租賃服務(wù)方案
- 水利安全生產(chǎn)風(fēng)險(xiǎn)防控“六項(xiàng)機(jī)制”右江模式經(jīng)驗(yàn)分享
- 2023年山西普通高中會(huì)考信息技術(shù)真題及答案
- 劇作策劃與管理智慧樹(shù)知到期末考試答案2024年
- 老人健康飲食知識(shí)講座
- 浙江省溫州市2022-2023學(xué)年四年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 河南省鄭州高新技術(shù)產(chǎn)業(yè)開(kāi)發(fā)區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期1月期末科學(xué)試題
- 女裝行業(yè)退貨率分析
- 純視覺(jué)方案算法
評(píng)論
0/150
提交評(píng)論