Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 久久国产精品永久免费网站,久久国产精品自线拍免费,www.欧美日本免费视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          python mini-web框架-組裝數(shù)據(jù)為html格式

          y_web.py(更新)

          沉 發(fā)自 淺度寺

          量子位 出品 | 公眾號 QbitAI

          在程序員圈子里,Visual Studio Code(以下簡稱VSCode)可以說是目前最火的代碼編輯器之一了。

          它是微軟出品的一款可擴(kuò)展的輕量級開源編輯器,并且支持全平臺系統(tǒng)。這些特性使得VSCode頗受歡迎,這也使其成為了一個很棒的Python開發(fā)平臺。

          在本文中,你將學(xué)到如何在VSCode中進(jìn)行高效的Python開發(fā),其中包括:

          • 安裝VSCode
          • 安裝插件讓Python開發(fā)更便利
          • 編寫一個簡單的Python應(yīng)用
          • 學(xué)習(xí)如何在VSCode中運行和調(diào)試已有的Python程序
          • 在VSCode中使用Git和Github來管理代碼

          本文假設(shè)你已經(jīng)熟悉了基本的Python開發(fā),并且計算機(jī)上安裝了某個版本的Python(Python2.7、Python3.6/7、Anaconda等)。

          文中會提供Ubuntu和Windows系統(tǒng)上的運行截圖和樣例,但由于VSCode還可以在其他主流平臺上運行,所以你可能會在實際操作中看到略微有些差異的UI界面,一些命令的鍵位可能也需要修改。

          VSCode的安裝與配置

          在任何平臺上安裝VSCode都不是難事。微軟提供了Windows,Mac和Linux平臺上詳盡的安裝指引,并且每月都會有更新以推出新特性或修復(fù)已知問題。

          這些都可以在VSCode官網(wǎng)上找到:

          https://code.visualstudio.com



          可能你會想,VSCode和那個龐大的Visual Studio名字這么像,它們會不會有什么關(guān)系呢?但其實,并沒有,哈哈。

          VSCode默認(rèn)支持多種編程語言,并且有著豐富的擴(kuò)展。VSCode每月更新,你可以在微軟博客上隨時關(guān)注更新的進(jìn)展。微軟甚至把代碼開源在了Github上供所有開發(fā)者克隆倉庫甚至貢獻(xiàn)代碼(暗示大家趕緊來提PR)。

          VSCode的用戶界面官方給出了詳細(xì)的操作說明,如下圖所示,在此不再贅述。



          為Python開發(fā)安裝插件

          正如上文中提到,VSCode可以通過自身良好的擴(kuò)展性質(zhì)來支持各種編程語言的開發(fā)。

          Python插件使我們可以更方便地在VSCode中進(jìn)行Python開發(fā),它有以下功能和特點:

          • 支持Python2.7和Python3.4+的Pyhon版本
          • 使用IntelliSense進(jìn)行代碼補(bǔ)全
          • 代碼檢查器
          • 對調(diào)試的支持
          • 代碼段功能
          • 對單元測試的支持
          • 自動應(yīng)用虛擬環(huán)境
          • 可在Jupyter環(huán)境和Jupyter Notebook中編輯代碼



          事實上,VSCode插件并不僅是編程語言層面的,如下面這些:Keymaps可以改變VSCode的操作方式,讓那些習(xí)慣使用Atom,Sublime Text,Emacs,Vim,Pycharm等其他編輯器的開發(fā)者更舒服。

          Themes可以定制用戶界面外觀,不管你是喜歡亮色、暗色或五彩斑斕的黑,它都能滿足;Language提供了良好的本地化體驗。

          還有一些很有用的插件推薦給大家:

          • GitLens提供了許多可以直接在編輯窗口中使用的Git特性,包括blame標(biāo)注和倉庫探索等;
          • Autosave可以通過菜單欄File—Auto Save開啟,顧名思義,它會以固定的時間間隔保存你的代碼,默認(rèn)是1000毫秒(1秒),這個值是可以配置的;
          • Settings Sync可以讓你通過Github在多個VSCode安裝中同步配置,如果你會在不同的機(jī)器上使用VSCode,這么做可以讓你保持開發(fā)環(huán)境的一致性;
          • Docker插件可以當(dāng)讓你愉快地使用Docker工作,它幫助開發(fā)者編寫dockerfile和docker-compose.yml,打包并部署項目,甚至為項目自動生成dockerfile。

          當(dāng)然了,你也可以自己發(fā)掘其他有趣有用的插件,歡迎和大家分享你的發(fā)現(xiàn)!

          可以通過點擊左邊活動欄的插件圖標(biāo)來進(jìn)行插件或主題的發(fā)現(xiàn)和安裝。你可以通過關(guān)鍵詞來搜索插件,用多種方式排序搜索結(jié)果,并快捷方便地安裝插件。

          對于本文中使用到的Python插件,你可以搜索Python字樣,然后在特定項上點擊install進(jìn)行安裝。



          同理,你可以用這種方式安裝其他上面提到的插件。

          VSCode配置文件

          VSCode通過用戶(user)工作區(qū)(workspace)設(shè)置實現(xiàn)高度可配置化。

          用戶設(shè)置是應(yīng)用于所有VSCode實例的全局性設(shè)置,而工作區(qū)設(shè)置是應(yīng)用于特定文件夾或項目的局部設(shè)置。工作區(qū)設(shè)置給VSCode提供了極大的靈活性,我們在之后調(diào)出的都是工作區(qū)設(shè)置。

          工作區(qū)設(shè)置以json格式保存在項目目錄下.vscode文件夾中。

          寫個Python程序

          讓我們從一個Python程序開始探索如何在VSCode中進(jìn)行Python開發(fā)。你可以在VSCode中使用快捷鍵Ctrl+N來編輯一個新文件(也可以在菜單欄中選擇File—New File)。

          Tips:VSCode用戶界面提供了命令盤(command palette)功能,使你可以手不離鍵盤就能搜索、執(zhí)行各項命令。按下Ctrl+Shift+P打開命令盤,鍵入new file,按下回車,也可以編輯一個新文件。

          無論用哪種方法,你應(yīng)該可以看到類似下面這樣的窗口:



          新文件打開后,就可以開始寫代碼啦。

          我們快速寫一個埃拉托斯特尼篩法(用來尋找不超過一個數(shù)的所有質(zhì)數(shù))作為測試代碼。從下面這兩行開始:

          sieve = [True] * 101
          for i in range(2, 100):
          

          你應(yīng)該看到類似下面的場景:



          等等,發(fā)生什么了?為什么VSCode沒有任何關(guān)鍵詞高亮,格式自動調(diào)整等有用的東西?要它何用?

          答案是,目前VSCode還不知道你在寫什么。這個文字緩沖區(qū)叫做Untitled-1,如果你看看窗口右下角,你會發(fā)現(xiàn)寫著Plain Text,也就是說VSCode還不知道你在寫Python代碼。

          為了讓Python插件發(fā)揮作用,我們需要將文件存儲為后綴為py的文件,如sieve.py。你可以通過菜單欄File—Save File,或者按下Ctrl+S,或在命令盤鍵入save file來做到這一點。VSCode看到py后綴就會將文件解釋為Python代碼。現(xiàn)在你的窗口應(yīng)該長這樣:



          好多了有沒有!VSCode自動按照Python語言重新確定了格式,你可以在窗口左下角驗證當(dāng)前編程語言的正確性。

          如果你同時安裝了多個版本的Python(如Python2.7,Python3.x和Anaconda),你可以通過點擊左下角的語言(這里的Python x.x.x)或在命令盤中選擇select interpreter來切換Python解釋器。VSCode默認(rèn)用PEP8標(biāo)準(zhǔn)來格式化Python代碼,但你也可以選用其他標(biāo)準(zhǔn)。

          現(xiàn)在讓我們完成剩余篩法代碼。

          為了能觀察到IntelliSense發(fā)揮作用,請不要直接復(fù)制粘貼這段代碼。親手輸入,你將看到下面的畫面:



          下面是埃拉托斯特尼篩法中“篩”這個部分的完整代碼:

          sieve = [True] * 101
          for i in range(2, 100):
           if sieve[i]:
           print(i)
           for j in range(i*i, 100, i):
           sieve[j] = False
          

          輸入這段代碼時,VSCode自動縮進(jìn)了for和if下的語句,自動加上了結(jié)尾大括號,并為你提供輸入建議。這就是IntelliSense的威力。

          運行Python代碼

          既然寫完了代碼,我們就可以運行它了。因為VSCode可以直接在編輯器里運行代碼,所以我們完全不需要離開編輯器。按Ctrl+S保存文件,接著在編輯器窗口中點擊鼠標(biāo)右鍵,選擇Run Python File in Terminal。



          可以看見,窗口下方出現(xiàn)了Terminal選項卡,顯示了代碼的輸出。

          對Python代碼檢查器的支持

          你可能在寫代碼的時候看見過一個彈出框,上面寫著代碼檢查器不可用(linting was not available)。你可以在彈出框中快速安裝一個代碼檢查器,默認(rèn)安裝的是PyLint。VSCode也支持其他檢查器,包括:flake8、mypy、pydocstyle、pep8、prospector、pyllama、bandit等。

          Python代碼檢查器頁面有配置每一種檢查器的詳細(xì)資料。注意,代碼檢查器的選擇是項目級別的工作區(qū)設(shè)置,而不是全局用戶設(shè)置。

          編輯一個已有的Python項目

          在埃拉托斯特尼篩法的例子中,你創(chuàng)建了一個單獨的Python文件。這作為例子來講很合適,但通常你會創(chuàng)建更大的項目,并在其上工作一段時間。一個典型的創(chuàng)建新項目的工作流程如下:

          • 創(chuàng)建一個存放項目的文件夾(其中可能包含一個新的Github項目)
          • 切換到新文件夾
          • 用命令代碼創(chuàng)建一個初始Python代碼文件

          在Python項目中使用VSCode會給你帶來更多精彩的功能,讓我們看看VSCode是怎樣對付大型工程的。

          早在上個世紀(jì)我還是一名年輕的程序員時,我用調(diào)度場算法寫過一個將算式解析為中綴表達(dá)式的計算器程序。為了展示VSCode中項目專屬的特性,我將算法重構(gòu)成了Python的一個算式求值庫:

          https://github.com/JFincher42/PyEval

          大家可以隨意克隆至本地以進(jìn)行后面的操作。

          本地文件夾建好后,你可以通過VSCode快捷地打開整個文件夾,我比較喜歡下面這種方式:

          cd /path/to/project
          code .
          

          當(dāng)這樣打開時,VSCode將檢測到并開啟任何項目中存在的virtualenv、pipenv或conda虛擬環(huán)境,你甚至都不用自己手動去啟動虛擬環(huán)境!以下幾種方式都可以在用戶界面中打開一個文件夾:菜單欄中點擊File—Open Folder;按下快捷鍵Ctrl+K或Ctrl+O;在命令盤中鍵入file:open folder。

          我的公式求值庫項目打開后看起來是這樣的:



          當(dāng)VSCode打開文件夾時,它同時也會打開你最近打開的文件(這個行為是可配置的)。

          你可以打開、編輯、運行、調(diào)試文件列表中的任何文件。

          左側(cè)活動區(qū)的探索者視圖向你展示了文件夾中的所有文件,并告訴你在當(dāng)前打開的選項卡中有多少編輯了但還沒有保存的文件。

          對測試的支持

          如果當(dāng)前環(huán)境安裝了測試框架,VSCode可以自動識別已有的用測試框架編寫的測試代碼。我用unittest為我的公式求值庫寫了一個單元測試,大家可以用它作為例子來學(xué)習(xí)。

          你可以在項目中的任何一個文件中右鍵選擇Run Current Unit Test File來運行已有的單元測試。VSCode會詢問你使用哪種測試框架、項目中測試代碼存放的路徑,以及測試文件的命名方式。

          這些設(shè)置都將作為工作去設(shè)置被保存在項目.vscode文件夾下的settings.json文件中,你也可以在那里更改這些設(shè)置。對于我的公式求值項目,我們選擇用unittest框架,測試代碼在當(dāng)前目錄下,測試代碼命名為*_test.py。

          一旦配置好了測試框架、找到了測試代碼,你就可以點擊狀態(tài)欄的Run Tests來運行所有的測試。



          你甚至可以通過點擊狀態(tài)欄的Run Tests,然后選擇Run Unit Test Method來運行單個測試。這樣我們就可以單獨運行失敗的測例,能夠節(jié)省一大筆時間!測試結(jié)果輸出在Output選項卡中。

          對調(diào)試的支持

          即使VSCode是個編輯器,但在其中調(diào)試代碼也是可行的。VSCode提供了許多好的代碼調(diào)試器所擁有的特性:

          • 自動變量追蹤
          • watch表達(dá)式
          • 斷點
          • 調(diào)用棧檢查

          它們作為調(diào)試視圖的一部分被顯示在活動欄中:



          調(diào)試器可以控制Python應(yīng)用在內(nèi)置終端或遠(yuǎn)程終端實例上運行。它可以連接一個正在運行的Python實例,甚至可以調(diào)試Django和Flask應(yīng)用。

          用VSCode調(diào)試單個Python文件就和按F5啟動調(diào)試器一樣簡單。你可以按F10和F11來跳出或進(jìn)入函數(shù),按Shift+F5退出調(diào)試器。按F9或單擊編輯框左側(cè)區(qū)域來設(shè)置斷點。

          當(dāng)你要開始調(diào)試像Django和Flask應(yīng)用這種更復(fù)雜的項目時,需要進(jìn)行調(diào)試配置。在調(diào)試視圖中,選擇配置下拉菜單中的添加配置,然后選擇Python:



          上面的配置存儲在了.vscode/launch.json中,你可以針對像Django、Flask這種特殊應(yīng)用的設(shè)立專門的配置。

          你甚至可以遠(yuǎn)程調(diào)試,或是調(diào)試Jinja模板。這一切只需在配置下拉菜單中選擇合適的配置項即可。

          Git集成

          VSCode內(nèi)置版本控制機(jī)制,并自帶對Git和Github的支持,你也可以安裝插件以支持其他版本控制軟件。版本控制視圖中提供了各種版本控制功能:



          如果你的項目目錄包含.git文件夾,那么VSCode自動開啟完整的Git和Github支持。你可以進(jìn)行的操作包括:

          • 提交文件到Git
          • 向遠(yuǎn)程倉庫推送更新,或從遠(yuǎn)程倉庫拉更新
          • 切換已有分支或新建分支
          • 查看并解決合并沖突
          • 查看代碼差別

          所有這些事都可以直接在VSCode用戶界面中完成:

          VSCode也能識別來自編輯器外的文件內(nèi)容改變并做出反應(yīng)。

          在VSCode中提交最近的代碼更改是很方便直接的。在版本控制視圖中,被修改的文件用M標(biāo)記,新的未追蹤文件用U標(biāo)記。

          鼠標(biāo)懸浮于文件上,點擊加號(+)來添加更改。在頂端輸入提交信息,最后點擊對勾來提交這些更改。



          你也可以在VSCode中將本地提交推至Github。選擇版本控制視圖中的Sync,點擊狀態(tài)欄中的Synchronize Changes即可。

          結(jié)論

          VSCode是目前最棒的通用編輯器,也是Python開發(fā)者的絕佳選擇。通過這篇文章你學(xué)到了:

          • 如何安裝VSCode
          • 如何查找、安裝插件來開啟對Python的支持
          • 如何用VSCode更輕松地編寫Python程序
          • 如何用VSCode運行、調(diào)試Python代碼
          • 如何在VSCode中使用Git和Github

          VSCode已經(jīng)成為了我進(jìn)行Python甚至其他項目開發(fā)時最常用的編輯器,推薦給你,希望你也可以試試看~

          — 完 —

          誠摯招聘

          量子位正在招募編輯/記者,工作地點在北京中關(guān)村。期待有才氣、有熱情的同學(xué)加入我們!相關(guān)細(xì)節(jié),請在量子位公眾號(QbitAI)對話界面,回復(fù)“招聘”兩個字。

          量子位 QbitAI · 頭條號簽約作者

          ?'?' ? 追蹤AI技術(shù)和產(chǎn)品新動態(tài)

          近臨近開學(xué)了,大家都在忙著準(zhǔn)備各種學(xué)習(xí)的資料,準(zhǔn)備在新的學(xué)期好好學(xué)習(xí),充實自己。小編身邊的同學(xué)也是如此,最近,小編的同學(xué)小麗就遇到了一個很棘手的問題。

          她想將一個網(wǎng)頁的Python學(xué)習(xí)的教程打印下來,方便自己來學(xué)習(xí),但是上千頁的教程,如果通過手動的方式,一個一個的去轉(zhuǎn)成pdf并保存到本地,實在是麻煩的不。

          這就是一個html轉(zhuǎn)pdf的問題,其實網(wǎng)上有很多不錯的html資源,但是苦于學(xué)習(xí)起來,不方便!于是小編就跟小麗保證,這點小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。

          01.抓取的學(xué)習(xí)資料

          如今網(wǎng)上的在線學(xué)習(xí)資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網(wǎng)頁鏈接如下:

          https://docs.python.org/zh-cn/3.9/tutorial/index.html

          打開上述鏈接后,大家會在網(wǎng)頁中找到不同內(nèi)容的鏈接地址,包括了基礎(chǔ)的python字符、python語法等內(nèi)容。

          02.獲取網(wǎng)頁鏈接

          在上圖中,我們需要格外關(guān)注的是紅色方格標(biāo)注的鏈接,每個鏈接都會跳轉(zhuǎn)到對應(yīng)的子網(wǎng)頁中,而在子網(wǎng)頁中,就是我們想要保存的內(nèi)容。

          可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內(nèi)容。所以將html內(nèi)容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內(nèi)容,因此對于教程的網(wǎng)頁,大都采用的是靜態(tài)頁面,在網(wǎng)頁源代碼中可以很輕松地找到子頁面的網(wǎng)頁鏈接。

          對于子網(wǎng)頁的鏈接抓取,程序如下圖所示:

          程序中,通過BeautifulSoup庫來解析網(wǎng)頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None


          03.html轉(zhuǎn)pdf

          在得到子網(wǎng)頁的鏈接后,接下來就是將html的子網(wǎng)頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網(wǎng)頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。

          • 下載https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.mxe-cross-win64.7z 并解壓到本地文件中。(后臺輸入:pdf) 直接獲取。
          • 將解壓文件中的bin文件路徑添加到系統(tǒng)變量Path中。
          • 執(zhí)行pip install pdfkit
          • 執(zhí)行pip install wkhtmltopdf

          按照上述的操作流程,就可以安裝pdfkit庫。對于pdfkit庫的使用,常見的用法有以下三種:

          上面的程序主要完成以下幾步:

          首先需要指定wkhtmltopdf.exe文件的路徑;

          • 然后分別通過from_url、from_file和from_string的三種方式來保存為pdf文件;
          • 需要注意的是,from_file和from_url中的第一個參數(shù)必須是一個html的字符串或者是html文檔的列表;
          • 但是小編通過程序運行發(fā)現(xiàn),from_url第一個參數(shù)只能是html的字符串,不能是html的列表


          因此,pdfkit庫只能將子網(wǎng)頁保存為單獨的pdf文檔,無法直接通過pdfkit庫將所有的子網(wǎng)頁拼接成一個完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實現(xiàn)pdf文檔的拼接。程序如下圖所示。

          程序中首先將所有的html網(wǎng)頁保存為單獨的pdf文檔,然后通過PdfFileMerger類對象來實現(xiàn)pdf文檔的拼接。最后就可以得到全部的pdf內(nèi)容。最后我們通過視頻的展示,來看一下程序的效果吧。


          除此之外,程序不光可以抓取python3.9的中文文檔,針對其他的在線文檔,只需要對獲取網(wǎng)頁鏈接的程序進(jìn)行修改即可抓取,例如對于Flask中文文檔的抓取,程序只需要按照下圖進(jìn)行修改,即可將Flask的在線文檔保存為PDF文檔。

          04.總結(jié)

          學(xué)習(xí)Python其實非常有趣,也很有用。因為Python有大量的現(xiàn)成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發(fā)送給了她,小編與女神的關(guān)系更拉近了一步


          主站蜘蛛池模板: 无码人妻精一区二区三区| 久久久久人妻一区二区三区| 无码少妇一区二区浪潮免费| 国产香蕉一区二区精品视频| 高清一区二区三区| 久久久无码精品人妻一区| 精品国产一区二区三区久久影院 | 精品福利一区二区三| 成人精品一区二区三区校园激情 | 91一区二区视频| 日韩美女在线观看一区| 亚洲国产成人久久综合一区| 日韩福利视频一区| 亚洲国产AV无码一区二区三区| 国产亚洲3p无码一区二区| 久久久久国产一区二区三区| 影音先锋中文无码一区| 亚洲AV无码一区东京热| 久久高清一区二区三区| 国产一区二区精品| 精品无码一区二区三区电影 | 免费精品一区二区三区第35| 国产一区二区高清在线播放 | 搜日本一区二区三区免费高清视频 | 精品视频在线观看你懂的一区| 无码精品一区二区三区| 日韩一区二区三区四区不卡| 国产手机精品一区二区| 国产精品成人一区无码 | 精品日韩一区二区| 国产精品一区视频| 一区二区三区四区无限乱码| 爆乳熟妇一区二区三区| 国产精品日本一区二区不卡视频| 91无码人妻精品一区二区三区L| 伊人无码精品久久一区二区| 日韩视频在线一区| 国产成人精品一区二区三区免费 | 国产一区二区成人| 波多野结衣一区二区三区aV高清| 无码午夜人妻一区二区三区不卡视频|