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 国产成人精品午夜在线播放,精品视频久久久久,日韩美女视频一区

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          python mini-web框架-組裝數據為html格式

          y_web.py(更新)

          沉 發自 淺度寺

          量子位 出品 | 公眾號 QbitAI

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

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

          在本文中,你將學到如何在VSCode中進行高效的Python開發,其中包括:

          • 安裝VSCode
          • 安裝插件讓Python開發更便利
          • 編寫一個簡單的Python應用
          • 學習如何在VSCode中運行和調試已有的Python程序
          • 在VSCode中使用Git和Github來管理代碼

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

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

          VSCode的安裝與配置

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

          這些都可以在VSCode官網上找到:

          https://code.visualstudio.com



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

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

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



          為Python開發安裝插件

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

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

          • 支持Python2.7和Python3.4+的Pyhon版本
          • 使用IntelliSense進行代碼補全
          • 代碼檢查器
          • 對調試的支持
          • 代碼段功能
          • 對單元測試的支持
          • 自動應用虛擬環境
          • 可在Jupyter環境和Jupyter Notebook中編輯代碼



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

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

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

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

          當然了,你也可以自己發掘其他有趣有用的插件,歡迎和大家分享你的發現!

          可以通過點擊左邊活動欄的插件圖標來進行插件或主題的發現和安裝。你可以通過關鍵詞來搜索插件,用多種方式排序搜索結果,并快捷方便地安裝插件。

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



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

          VSCode配置文件

          VSCode通過用戶(user)工作區(workspace)設置實現高度可配置化。

          用戶設置是應用于所有VSCode實例的全局性設置,而工作區設置是應用于特定文件夾或項目的局部設置。工作區設置給VSCode提供了極大的靈活性,我們在之后調出的都是工作區設置。

          工作區設置以json格式保存在項目目錄下.vscode文件夾中。

          寫個Python程序

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

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

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



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

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

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

          你應該看到類似下面的場景:



          等等,發生什么了?為什么VSCode沒有任何關鍵詞高亮,格式自動調整等有用的東西?要它何用?

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

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



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

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

          現在讓我們完成剩余篩法代碼。

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



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

          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自動縮進了for和if下的語句,自動加上了結尾大括號,并為你提供輸入建議。這就是IntelliSense的威力。

          運行Python代碼

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



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

          對Python代碼檢查器的支持

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

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

          編輯一個已有的Python項目

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

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

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

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

          https://github.com/JFincher42/PyEval

          大家可以隨意克隆至本地以進行后面的操作。

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

          cd /path/to/project
          code .
          

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

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



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

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

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

          對測試的支持

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

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

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

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



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

          對調試的支持

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

          • 自動變量追蹤
          • watch表達式
          • 斷點
          • 調用棧檢查

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



          調試器可以控制Python應用在內置終端或遠程終端實例上運行。它可以連接一個正在運行的Python實例,甚至可以調試Django和Flask應用。

          用VSCode調試單個Python文件就和按F5啟動調試器一樣簡單。你可以按F10和F11來跳出或進入函數,按Shift+F5退出調試器。按F9或單擊編輯框左側區域來設置斷點。

          當你要開始調試像Django和Flask應用這種更復雜的項目時,需要進行調試配置。在調試視圖中,選擇配置下拉菜單中的添加配置,然后選擇Python:



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

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

          Git集成

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



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

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

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

          VSCode也能識別來自編輯器外的文件內容改變并做出反應。

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

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



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

          結論

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

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

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

          — 完 —

          誠摯招聘

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

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

          ?'?' ? 追蹤AI技術和產品新動態

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

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

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

          01.抓取的學習資料

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

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

          打開上述鏈接后,大家會在網頁中找到不同內容的鏈接地址,包括了基礎的python字符、python語法等內容。

          02.獲取網頁鏈接

          在上圖中,我們需要格外關注的是紅色方格標注的鏈接,每個鏈接都會跳轉到對應的子網頁中,而在子網頁中,就是我們想要保存的內容。

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

          對于子網頁的鏈接抓取,程序如下圖所示:

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


          03.html轉pdf

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

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

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

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

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

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


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

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


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

          04.總結

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


          主站蜘蛛池模板: 少妇一晚三次一区二区三区| 在线精品国产一区二区| 精品一区二区三区免费观看| 国模大尺度视频一区二区| 久久精品视频一区| 国产精品一区二区电影| 日韩欧国产精品一区综合无码| 精品国产一区二区三区久久久狼 | 国产精品男男视频一区二区三区| 日本一区二区免费看| 精品视频一区在线观看| 亚洲一区二区观看播放| 色妞色视频一区二区三区四区 | 日韩免费一区二区三区在线 | 亚洲综合激情五月色一区| 亚洲天堂一区二区| 亚洲国产成人久久一区久久| 波多野结衣一区二区免费视频| 精品不卡一区二区| 99久久精品午夜一区二区| 亚洲AV无码一区二区三区人 | 无码人妻一区二区三区一| 日产亚洲一区二区三区| 久久一区二区精品| 人妻aⅴ无码一区二区三区| 无码国产精品一区二区免费模式| 久久91精品国产一区二区| 久久一区二区三区精品| 久久综合亚洲色一区二区三区 | 中文字幕亚洲一区| 国产美女精品一区二区三区| 99久久精品国产免看国产一区 | 国产情侣一区二区三区| 久久国产午夜精品一区二区三区| 国产一区二区精品久久凹凸| 成人精品一区二区三区不卡免费看 | 久久4k岛国高清一区二区| 最新欧美精品一区二区三区| 在线视频一区二区三区四区| 国产大秀视频一区二区三区| 精品一区二区三区免费观看|