Python運維開發(fā)實戰(zhàn)培訓(xùn)課件_第1頁
Python運維開發(fā)實戰(zhàn)培訓(xùn)課件_第2頁
Python運維開發(fā)實戰(zhàn)培訓(xùn)課件_第3頁
Python運維開發(fā)實戰(zhàn)培訓(xùn)課件_第4頁
Python運維開發(fā)實戰(zhàn)培訓(xùn)課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

81201Python運維開發(fā)基礎(chǔ)軟件系統(tǒng)組Excellentcourseware81201Python運維開發(fā)基礎(chǔ)軟件系統(tǒng)組Excellen1Python運維開發(fā)概述2Python腳本與后臺開發(fā)3Python

web開發(fā)目錄CONTENTSExcellentcourseware1Python運維開發(fā)概述2Python腳本與后臺開發(fā)3Py201Python運維開發(fā)概述Excellentcourseware01Python運維開發(fā)概述Excellentcourse3Python是什么是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言,由荷蘭人GuidovanRossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python目前流行的版本有2.x和3.x,這2個版本區(qū)別大,開發(fā)的代碼不兼容,Linux上自帶的是Python2.x。許多大型網(wǎng)站就是用Python開發(fā)的,例如YouTube、Instagram,還有國內(nèi)的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。Python廣泛用于腳本開發(fā)、爬蟲、科學(xué)計算、圖像處理、數(shù)據(jù)分析Python圖形化開發(fā)工具PythonIDE

:PyCharmExcellentcoursewarePython是什么是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設(shè)計語言,4TIOBE排行榜ExcellentcoursewareTIOBE排行榜Excellentcourseware5運維開發(fā)是什么工作職責:

1、負責運營支撐平臺、運維自動化平臺及其組件的設(shè)計和開發(fā);

2、負責優(yōu)化、改進運維支持系統(tǒng),并保證其安全高效穩(wěn)定的運行;

3、參與運營平臺、運維系統(tǒng)的需求分析、設(shè)計、編碼;

4、負責開發(fā)、完善運維內(nèi)部系統(tǒng)及輔助系統(tǒng),提升運維質(zhì)量及效率;開發(fā)的語言選擇:python、java、shell和web前端開發(fā)Python開發(fā)的運維工具:Ansible、SaltStackExcellentcourseware運維開發(fā)是什么工作職責:

1、負責運營支撐平臺、運維自動化平6運維開發(fā)的團隊模式純開發(fā)團隊開發(fā),編程技術(shù)熟練,能快速形成產(chǎn)品,但是開發(fā)的產(chǎn)品可能不符合運維人員的習(xí)慣,運維人員不愛用純開發(fā)團隊開發(fā)運維人員編程能力不高,學(xué)習(xí)成本高,但熟悉運維技術(shù),產(chǎn)出的產(chǎn)品運維團隊會常用。運維人員獨自開發(fā)

運維人員當產(chǎn)品經(jīng)理,利用程序員強大的開發(fā)能力,按照運維的需求去開發(fā)運維帶領(lǐng)開發(fā)人員團隊模式Excellentcourseware運維開發(fā)的團隊模式純開發(fā)團隊開發(fā),編程技術(shù)熟練,能快速形成產(chǎn)7運維開發(fā)為什么選Python簡單易學(xué)python非常簡單,非常適合人類閱讀,偽代碼本質(zhì)是它最大的優(yōu)點之一。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。開源你可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中可移植性Python程序無需修改就可以在下述任何平臺上面運行,Linux、Windows、FreeBSD、Macintosh、Solaris(只列出部分)豐富的庫正則表達式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI可擴展性和可嵌入性Python代碼中可嵌入c/c++等代碼,也可以把Python嵌入你的C/C++程序面向?qū)ο笈c其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現(xiàn)面向?qū)ο缶幊?。Python優(yōu)點Excellentcourseware運維開發(fā)為什么選Python簡單易學(xué)python非常簡單,非802Python腳本與后臺開發(fā)Excellentcourseware02Python腳本與后臺開發(fā)Excellentcours9Python發(fā)送微信#coding:utf-8importurllib.requestimportjsonimportsysdefwechat(warns):corp_id=‘企業(yè)微信id'corp_secret=‘企業(yè)微信密碼'content=warnsgettoken_url='/cgi-bin/gettoken?corpid='+corp_id+'&corpsecret='+corp_secrettoken_file=urllib.request.urlopen(gettoken_url)token_data=token_file.read().decode('utf-8')token_json=json.loads(token_data)token_json.keys()token=token_json['access_token']send_url='/cgi-bin/message/send?access_token='+tokensend_values={"touser":"@all","msgtype":"text","agentid":"1","text":{"content":content},"safe":"0"}send_data=json.dumps(send_values,ensure_ascii=False).encode(encoding='UTF8')send_request=urllib.request.Request(send_url,send_data)response=urllib.request.urlopen(send_request)msg=response.read()messages=sys.argv[1]wechat(messages)ExcellentcoursewarePython發(fā)送微信#coding:utf-8Excel10Python任務(wù)調(diào)度模塊安裝APScheduler非常簡單:pipinstallapscheduler#coding:utf-8fromapscheduler.schedulers.blockingimportBlockingSchedulerimportdatetimedefjob1():print('我5秒執(zhí)行一次')defjob2():print('我在特定時間執(zhí)行')

sched=BlockingScheduler()sched.add_job(job1,'interval',seconds=5)sched.add_job(job2,'date',run_date='2018-03-2711:39:35')sched.start()ExcellentcoursewarePython任務(wù)調(diào)度模塊安裝APScheduler非常簡單:11Python使用數(shù)據(jù)庫連接SqlServer模塊pymssql,連接oracle模塊cx_oracle,連接MySQL模塊MySQLclient下面演示使用MySQL數(shù)據(jù)庫如果沒有安裝MySQLclient,請安裝,MySQLclient用于Python連接MySQL數(shù)據(jù)庫下載mysqlclient-1.3.12-cp36-cp36m-win32.whl,安裝pipinstallmysqlclient-1.3.12-cp36-cp36m-win32.whl#coding=utf-8importMySQLdbconn=MySQLdb.connect(host='localhost',port=3306,user='admin',passwd='admin',db='django',charset='utf8')cur=conn.cursor()cur.execute('select*frommyapp_bill')data=cur.fetchall()print(data)cur.close()conn.close()ExcellentcoursewarePython使用數(shù)據(jù)庫連接SqlServer模塊pymssq12數(shù)據(jù)庫性能管理平臺介紹數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫collecterWeb服務(wù)器Python編寫的數(shù)據(jù)庫性能信息收集后臺,自動去數(shù)據(jù)庫中獲取性能數(shù)據(jù),處理并存儲在本地數(shù)據(jù)庫中Pythonweb架構(gòu)Django編寫的前端頁面,用于展示性能圖表,性能分析,自動優(yōu)化,后臺管理等,可幫助dba、開發(fā)、應(yīng)用管理員管理數(shù)據(jù)庫。Excellentcourseware數(shù)據(jù)庫性能管理平臺介紹數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫collecterW1303Pythonweb開發(fā)Excellentcourseware03Pythonweb開發(fā)Excellentcourse14HTML超文本標記語言HTML語言是一種超文本的標記語言,簡單來講就是構(gòu)建一套標記符號和語法規(guī)則,將所要顯示出來的文字、圖象、聲音等要素按照一定的標準要求排放,形成一定的標題、段落、列表等單元。ExcellentcoursewareHTML超文本標記語言HTML語言是一種超文本的標記語言,15Css層疊樣式表CSS層疊樣式表是一系列格式設(shè)置的規(guī)則,它們控制網(wǎng)頁內(nèi)容的外觀。使用CSS設(shè)置頁面格式時,可以將內(nèi)容與表現(xiàn)形式分開。網(wǎng)頁內(nèi)容(即HTML代碼)駐留在HTML文件自身中,而用于定義代碼表現(xiàn)形式的CSS規(guī)則駐留在另一個文件(外部樣式表)或HTML文檔的另一部分(通常為文件頭部分)中。使用CSS可以更加靈活地控制具體的頁面外觀,從精確的布局定位到特定的字體和樣式。CSS允許控制HTML無法獨自控制的許多屬性。例如,可以為選定的文本指定不同的字體大小和單位(像素、磅值等)。通過CSS可以用像素為單位來設(shè)置字體大小,從而可以確保在多個瀏覽器中以更一致的方式處理頁面布局和外觀。除設(shè)置文本格式外,還可以使用CSS控制網(wǎng)頁中塊級別元素的格式和定位。例如,可以設(shè)置塊級別元素的邊距和邊框,其他文本周圍的浮動文本等。ExcellentcoursewareCss層疊樣式表CSS層疊樣式表是一系列格式設(shè)置的規(guī)則,它們16Javascript1.是一種解釋性腳本語言(代碼不進行預(yù)編譯)。2.主要用來向HTML(標準通用標記語言下的一個應(yīng)用)頁面添加交互行為。3.可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結(jié)構(gòu)和行為的分離。4.跨平臺特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。一般用途1.嵌入動態(tài)文本于HTML頁面。2.對瀏覽器事件做出響應(yīng)。3.讀寫HTML元素。4.在數(shù)據(jù)被提交到服務(wù)器之前驗證數(shù)據(jù)。5.檢測訪客的瀏覽器信息。6.控制cookies,包括創(chuàng)建和修改等。7.基于Node.js技術(shù)進行服務(wù)器端編程。ExcellentcoursewareJavascript1.是一種解釋性腳本語言(代碼不進行預(yù)17三者的定位HTML定義了網(wǎng)頁的內(nèi)容CSS描述了網(wǎng)頁的布局JavaScript網(wǎng)頁的行為Excellentcourseware三者的定位HTML定義了網(wǎng)頁的內(nèi)容Excellentco18BootstrapBootstrap,來自Twitter

,Bootstrap是最受歡迎的HTML、CSS和JS框架,用于開發(fā)響應(yīng)式布局、移動設(shè)備優(yōu)先的WEB項目。ExcellentcoursewareBootstrapBootstrap,來自Twitter19HighchartsHighcharts系列軟件包含HighchartsJS,HighstockJS,HighmapsJS共三款軟件,均為純JavaScript編寫的HTML5圖表庫,全部源碼開放,個人及非商業(yè)用途可以任意使用及源代碼編輯。ExcellentcoursewareHighchartsHighcharts系列軟件包含Hi20Django框架Pythonweb框架Python的WEB框架有Django、Tornado、Flask等多種,Django相較與其他WEB框架其優(yōu)勢為:大而全,框架本身集成了ORM、模型綁定、模板引擎、緩存、Session等諸多功能。Django框架Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MTV的框架模式,即模型M,模板T和視圖V。它最初是被開發(fā)來用于管理勞倫斯出版集團旗下的一些以新聞內(nèi)容為主的網(wǎng)站的,即是CMS(內(nèi)容管理系統(tǒng))軟件。并于2005年7月在BSD許可證下發(fā)布。這套框架是以比利時的吉普賽爵士吉他手DjangoReinhardt來命名的。ExcellentcoursewareDjango框架Pythonweb框架Python的WEB21Django特點與Memcached,Redis等緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn),更快的加載速度。緩存系統(tǒng)強大,易擴展的模板系統(tǒng),設(shè)計簡易,代碼,樣式分開設(shè)計,更容易管理。注:前后端分離時,也可以用Django開發(fā)API,完全不用模板系統(tǒng)。模板系統(tǒng)用正則匹配網(wǎng)址,傳遞到對應(yīng)函數(shù),隨意定義,如你所想!優(yōu)雅的網(wǎng)址幾行簡單的代碼就讓你的網(wǎng)站擁有一個強大的后臺,輕松管理內(nèi)容!自帶強大后臺擁有強大的數(shù)據(jù)庫操作接口(QuerySetAPI),如需要也能執(zhí)行原生SQL。強大的數(shù)據(jù)庫功能ExcellentcoursewareDjango特點與Memcached,Redis等緩存系22Django流程圖ExcellentcoursewareDjango流程圖Excellentcourseware23Django安裝1、安裝Python下載地址:https:///downloads/注意把pip安裝也勾上2、安裝Djangocmd命令行上執(zhí)行pipinstallDjango==1.11.113、新建一個djangoproject找到Python安裝目錄下的Lib\site-packages\django\bin\django-admin.pypythondjango-admin.pystartprojectproject_name執(zhí)行后會在當前目錄生成一個以project_name為名的目錄,進入目錄可以看到manage.py這個文件4、新建apppythonmanage.pystartappmyapp5、把我們新定義的app加到settings.py中的INSTALL_APPS中ExcellentcoursewareDjango安裝1、安裝PythonExcellentco24Django安裝ALLOWED_HOSTS=[]改為ALLOWED_HOSTS=[‘*’],允許所有的ip訪問網(wǎng)站如果開發(fā)過程需要用到MySQL數(shù)據(jù)庫,將默認的sqlite數(shù)據(jù)庫改為MySQL,在之前需要再MySQL上建數(shù)據(jù)庫、建用戶,用于連接數(shù)據(jù)庫存儲數(shù)據(jù)。DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BASE_DIR,'db.sqlite3'),}}改為DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'mysite',

'HOST':'','PORT':'3306','USER':'root','PASSWORD':'123',}}ExcellentcoursewareDjango安裝ALLOWED_HOSTS=[]改為25基于Django架構(gòu)的個人日常賬單網(wǎng)站我們來做一個簡單的個人網(wǎng)站,將我們生活中產(chǎn)生的賬單記錄、查看及歸類分析,使用剛才講到的知識來進行開發(fā)。Excellentcourseware基于Django架構(gòu)的個人日常賬單網(wǎng)站我們來做一個簡單的個人26數(shù)據(jù)庫表的設(shè)計以及Djangomodels模塊修改models.py文件:fromdjango.dbimportmodels#Createyourmodelshere.classbill(models.Model):cdate=models.DateTimeField()money=models.DecimalField(max_digits=12,decimal_places=2)info=models.CharField(max_length=256)

consumetype=models.CharField(max_length=256)如果沒有安裝MySQLclient,請安裝,MySQLclient用于Python連接MySQL數(shù)據(jù)庫下載mysqlclient-1.3.12-cp36-cp36m-win32.whl,安裝pipinstallmysqlclient-1.3.12-cp36-cp36m-win32.whl生成遷移文件pythonmanage.pymakemigrations執(zhí)行遷移的命令pythonmanage.pymigrateExcellentcourseware數(shù)據(jù)庫表的設(shè)計以及Djangomodels模塊修改mode27搭建入賬網(wǎng)頁修改urls.py,用于關(guān)聯(lián)網(wǎng)址和views.py中定義的函數(shù)fromdjango.conf.urlsimporturlfromdjango.contribimportadminfrommyappimportviewsurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^$',views.home,name='home'),]制作表單,在myapp目錄下新建forms.py,內(nèi)容一下#coding:utf-8fromdjangoimportformsclassbillForm(forms.Form):cdate=forms.DateTimeField(label='賬單日期')money=forms.DecimalField(label='金額',max_digits=12,decimal_places=2)info=forms.CharField(label='賬單用途',max_length=256)consumetype=forms.CharField(label='賬單類型',max_length=256)Excellentcourseware搭建入賬網(wǎng)頁修改urls.py,用于關(guān)聯(lián)網(wǎng)址和views.p28搭建入賬網(wǎng)頁(2)在views.py里增加函數(shù)#coding:utf-8fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefrom.formsimportbillFormfrommyapp.modelsimportbill#Createyourviewshere.defhome(request):ifrequest.method=='POST':#當提交表單時

form=billForm(request.POST)#form包含提交的數(shù)據(jù)

ifform.is_valid():#如果提交的數(shù)據(jù)合法

a=form.cleaned_data['cdate']b=form.cleaned_data['money']c=form.cleaned_data['info']d=form.cleaned_data['consumetype']e=bill(cdate=a,money=b,info=c,consumetype=d)e.save()#returnHttpResponse('提交成功')

else:#當正常訪問時

form=billForm()returnrender(request,'home.html',{'form':form})Excellentcourseware搭建入賬網(wǎng)頁(2)在views.py里增加函數(shù)Excelle29搭建入賬網(wǎng)頁(3)在myapp目錄下新建static文件夾,其下再新建2個文件夾js、css,將bootstrap的文件放入待引用\static\css\bootstrap.min.css、\static\js\bootstrap.min.js、\static\js\jquery-1.8.3.min.js在myapp目錄下新建templates文件夾,其下新建模板home.html,內(nèi)容如下啟動Django應(yīng)用pythonmanage.pyrunserver:8000<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>歡迎來記賬</title> <linkrel="stylesheet"href="/static/css/bootstrap.min.css"> <scriptsrc="/static/css/jquery-1.8.3.min.js"></script> <scriptsrc="/static/css/bootstrap.min.js"></script> <style>.center{margin:auto;width:80%;padding:10px;}</style></head><body><navclass="navbarnavbar-default"role="navigation"> <divclass="container-fluid"> <divclass="navbar-header"> <spanclass="navbar-brand"href="#">我的賬單</span> </div> <div> <ulclass="navnavbar-nav"> <liclass="active"><ahref="/">入賬</a></li> <li><ahref="/check">查賬</a></li> <li><ahref="/settle">結(jié)算</a></li> </ul> </div> </div></nav><divclass="center"><formmethod='post'>{%csrf_token%}{{form}}<inputtype="submit"value="提交"></form></div></body></html>Excellentcourseware搭建入賬網(wǎng)頁(3)在myapp目錄下新建static文件夾,30搭建查賬網(wǎng)頁(1)修改urls.py加入新網(wǎng)址url(r'^check$',views.check,name='check'),修改views.py加入視圖函數(shù)fromdjango.dbimportconnection,transactiondefcheck(request): cursor=connection.cursor() cursor.execute('select*frommyapp_bill') allbill=cursor.fetchall() returnrender(request,'check.html',{'allbill':allbill}) Excellentcourseware搭建查賬網(wǎng)頁(1)修改urls.py加入新網(wǎng)址Excelle31搭建查賬網(wǎng)頁(2)Templates目錄下新建模板check.html

<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>歡迎來查賬</title> <linkrel="stylesheet"href="/static/css/bootstrap.min.css"> <scriptsrc="/static/js/jquery-1.8.3.min.js"></script> <scriptsrc="/static/js/bootstrap.min.js"></script></head><body><navclass="navbarnavbar-default"role="navigation"> <divclass="container-fluid"> <divclass="navbar-header"> <spanclass="navbar-brand"href="#">我的賬單</span> </div> <div> <ulclass="navnavbar-nav"> <li><ahref="/">入賬</a></li> <liclass="active"><ahref="/check">查賬</a></li> <li><ahref="/settle">結(jié)算</a></li> </ul> </div> </div></nav><divclass="container"><tableclass="tabletable-striped"><thead><tr><thstyle="text-align:center;">日期</th><thstyle="text-align:center;">詳細信息</th><thstyle="text-align:center;">賬單類別</th><thstyle="text-align:center;">金額(元)</th></tr></thead><tbody>{%forbillinallbill%}<tr><tdstyle="text-align:center;">'{{bill.1|date:"Y-m-dH:i:s"}}'</td><tdstyle="text-align:center;">'{{bill.3}}'</td><tdstyle="text-align:center;">'{{bill.4}}'</td><tdstyle="text-align:center;">'{{bill.2}}'</td></tr>{%endfor%}</tbody></table></div></body></html>Excellentcourseware搭建查賬網(wǎng)頁(2)Templates目錄下新建模板check32搭建歸類統(tǒng)計網(wǎng)頁(1)修改urls.py加入新網(wǎng)址url(r'^settle$',views.settle,name='settle'),修改views.py加入視圖函數(shù)defsettle(request): cursor=connection.cursor() cursor.execute('selectconsumetype,sum(money)frommyapp_billgroupbyconsumetype') alltype=cursor.fetchall() returnrender(request,'settle.html',{'alltype':alltype}) 到highcharts官網(wǎng)下載圖形js庫highcharts.js,放到\myapp\static\js目錄下

Excellentcourseware搭建歸類統(tǒng)計網(wǎng)頁(1)修改urls.py加入新網(wǎng)址Excel33搭建歸類統(tǒng)計網(wǎng)頁(2)Templates目錄下新建模板settle.html<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>歸類統(tǒng)計</title> <linkrel="stylesheet"href="/static/css/bootstrap.min.css"> <scriptsrc="/static/js/jquery-1.8.3.min.js"></script> <scriptsrc="/static/js/bootstrap.min.js"></script> <scriptsrc="/static/js/highcharts.js"></script> <style></style></head><body><navclass="navbarnavbar-default"role="navigation"> <divclass="container-fluid"> <divclass="navbar-header"> <spanclass="navbar-brand"href="#">我的賬單</span> </div> <div> <ulclass="navnavbar-nav"> <li><ahref="/">入賬</a></li> <li><ahref="/check">查賬</a></li> <liclass="active"><ahref="/settle">結(jié)算</a></li> </ul> </div> </div></nav><divclass="container"><divid="container1"style="min-width:400px;height:400px"></div></div><script> $(function(){$('#container1').highcharts({chart:{plotBackgroundColor:null,plotBorderWidth:null,plotShadow:false},title:{text:'賬單分類統(tǒng)計'},tooltip:{headerFormat:'{}<br>',

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論