摘要:和是最受歡迎的。虛擬環境將允許將項目依賴項與本地機器依賴項隔離開來。文件將是項目中的主文件。運行后,檢查本地主機。在中創建一個名為的文件夾,并創建一個名為的文件夾。部署創建帳戶為前端和全棧應用程序提供免費部署服務。
挑戰學習Python編程30天最終篇,要結束了,后面還會持續更新其他方面,關注我
你們的三連(點贊,收藏,評論)是我持續輸出的動力,感謝。
在興趣中學習,效益超乎想象,有趣的源碼與學習經驗,工具安裝包,歡迎加我的微信:bobin1124,一起交流學習與分享。
Python 是一種通用編程語言,可用于許多地方。在本節中,我們將了解如何在 Web 上使用 Python。Python 網頁框架作品很多。Django 和 Flask 是最受歡迎的。今天,我們將看到如何使用 Flask 進行 Web 開發。
Flask 是一個用 Python 編寫的 Web 開發框架。Flask 使用 Jinja2 模板引擎。Flask 也可以與其他現代前端庫一起使用,例如 React。
如果您還沒有安裝 virtualenv 包,請先安裝它。虛擬環境將允許將項目依賴項與本地機器依賴項隔離開來。
完成所有步驟后,您的項目文件結構應如下所示:
├── 配置文件├── app.py├──環境│ ├── bin├──需求.txt├── 靜態│ └── css│ └── main.css└── 模板 ├── about.html ├── home.html ├── layout.html ├── post.html └── 結果.html
按照以下步驟開始使用 Flask。
步驟 1:使用以下命令安裝 virtualenv。
pip 安裝 virtualenv
第2步:
asabeneh@Asabeneh:~/Desktop$ mkdir python_for_webasabeneh@Asabeneh:~/Desktop$ cd python_for_web/asabeneh@Asabeneh:~/Desktop/python_for_web$ virtualenv venvasabeneh@Asabeneh:~/Desktop/python_for_web$ source venv/bin/activate(env) asabeneh@Asabeneh:~/Desktop/python_for_web$ pip freeze(env) asabeneh@Asabeneh:~/Desktop/python_for_web$ pip install Flask(env) asabeneh@Asabeneh:~/Desktop/python_for_web$ pip freezeClick==7.0Flask==1.1.1itsdangerous==1.1.0Jinja2==2.10.3MarkupSafe==1.1.1Werkzeug==0.16.0(env) asabeneh@Asabeneh:~/Desktop/python_for_web$
我們創建了一個名為 python_for_web 的項目主管。在項目中,我們創建了一個虛擬環境venv,它可以是任何名稱,但我更喜歡稱之為venv。然后我們激活了虛擬環境。我們使用 pip freeze 檢查項目目錄中已安裝的包。pip freeze 的結果是空的,因為一個包還沒有安裝。
現在,讓我們在項目目錄中創建 app.py 文件并編寫以下代碼。app.py 文件將是項目中的主文件。下面的代碼有flask模塊,os模塊。
回家路線。
#讓我們從 flask 導入 flask import Flask import os #導入操作系統模塊app = Flask ( __name__ )@app.route("/") # 這個裝飾器創建 home 路由def home (): return "Welcome
"@app.route("/about")def about (): return "About us
"如果 __name__ == "__main__" :#部署,我們使用ENVIRON #使之成為生產和開發工作 port = int(os.environ.get("PORT", 5000)) app.run(debug=True, host="0.0.0.0", port=port)
要運行flask 應用程序,請在主flask 應用程序目錄中編寫python app.py。
運行python app.py 后,檢查本地主機 5000。
讓我們添加額外的路線。創建關于路由
#讓我們從 flask 導入 flask import Flask import os #導入操作系統模塊app = Flask ( __name__ )@app.route("/") # 這個裝飾器創建 home 路由def home (): return "Welcome
"@app.route("/about")def about (): return "About us
"如果 __name__ == "__main__" :#部署,我們使用ENVIRON #使之成為生產和開發工作 port = int(os.environ.get("PORT", 5000)) app.run(debug=True, host="0.0.0.0", port=port)
現在,我們在上面的代碼中添加了 about 路由。如果我們想渲染一個 HTML 文件而不是字符串呢?可以使用函數render_templae渲染 HTML 文件。讓我們創建一個名為 templates 的文件夾,并在項目目錄中創建 home.html 和 about.html。讓我們也從flask導入render_template函數。
在模板文件夾中創建 HTML 文件。
主頁.html
<!DOCTYPE html > < html lang =" en " > < head > < meta charset =" UTF-8 " /> <元 名稱="viewport" content =" width=device-width, initial-scale=1.0 " / > < title >首頁</ title > </ head > < body > < h1 >Welcome Home</ h1 > </ body > </ html >
關于.html
<!DOCTYPE html > < html lang =" en " > < head > < meta charset =" UTF-8 " /> <元 名稱="viewport" content =" width=device-width, initial-scale=1.0 " / > < title >關于</ title > </ head > < body > < h1 >關于我們</ h1 > </ body > </ html >
app.py
# 讓我們從 flask 導入 flask import Flask , render_template import os # 導入操作系統模塊app = Flask ( __name__ )@app.route("/") # 這個裝飾器創建 home 路由def home (): return render_template ( "home.html" )@app.route("/about")def about(): 返回 render_template("about.html")如果 __name__ == "__main__" :#部署,我們使用ENVIRON #使之成為生產和開發工作 port = int(os.environ.get("PORT", 5000)) app.run(debug=True, host="0.0.0.0", port=port)
如您所見,要轉到不同的頁面或導航,我們需要導航。讓我們為每個頁面添加一個鏈接,或者讓我們創建一個用于每個頁面的布局。
<ul> <li><a href="/">Home</a></li> <li><a href="/about">About</a></li></ul>
現在,我們可以使用上面的鏈接在頁面之間導航。讓我們創建處理表單數據的附加頁面。你可以叫它任何名字,我喜歡叫它 post.html。
我們可以使用 Jinja2 模板引擎將數據注入到 HTML 文件中。
# 讓我們從 flask 導入 flask import Flask , render_template , request , redirect , url_for import os # 導入操作系統模塊app = Flask ( __name__ )@app.route ( "/" ) # 這個裝飾器創建 home 路由def home (): techs = [ "HTML" , "CSS" , "Flask" , "Python" ] name = "30 Days Of Python Programming" return render_template ( " home.html" , techs = techs , name = name , title = "Home" )@app.route( "/about" ) def about (): name = "30 Days Of Python Programming" return render_template ( "about.html" , name = name , title = "About Us" )@app.route( "/post" ) def post (): name = "Text Analyzer" return render_template ( "post.html" , name = name , title = name )如果 __name__ == "__main__" :#部署#使之成為生產和開發工作 port = int(os.environ.get("PORT", 5000)) app.run(debug=True, host="0.0.0.0", port=port)
讓我們也看看模板:
主頁.html
<!DOCTYPE html > < html lang =" en " > < head > < meta charset =" UTF-8 " /> <元 名稱="視口" content =" width=device-width, initial-scale=1.0 " / > < title >首頁</ title > </ head ><body> <ul> <li><a href="/">Home</a></li> <li><a href="/about">About</a></li> </ul> <h1>Welcome to {{name}}</h1> <ul> {% for tech in techs %} <li>{{tech}}</li> {% endfor %} </ul> </body></html>
關于.html
<!DOCTYPE html > < html lang =" en " > < head > < meta charset =" UTF-8 " /> <元 名稱="視口" content =" width=device-width, initial-scale=1.0 " / > < title >關于我們</ title > </ head > <body> <ul> <li><a href="/">Home</a></li> <li><a href="/about">About</a></li> </ul> <h1>About Us</h1> <h2>{{name}}</h2> </body></html>
在模板文件中,有很多重復的代碼,我們可以寫一個布局,我們可以刪除重復。讓我們在模板文件夾中創建 layout.html。創建布局后,我們將導入到每個文件中。
在您的項目目錄中創建一個靜態文件夾。在靜態文件夾中創建 CSS 或樣式文件夾并創建一個 CSS 樣式表。我們使用url_for模塊來提供靜態文件。
布局.html
<!DOCTYPE html > < html lang =" en " > < head > < meta charset =" UTF-8 " /> <元 名稱="視口" content =" width=device-width, initial-scale=1.0 " / > < link href =" https://fonts.googleapis.com/css?family=Lato:300,400|Nunito:300,400|Raleway:300,400,500&display=swap " rel ="樣式表" /> < link rel ="樣式表" href =" {{url_for("static", filename="css/main.css") }} " /> {% if title %} <title>30 Days of Python - {{ title}}</title> {% else %} <title>30 Days of Python</title> {% endif %} </head> <body> <header> <div class="menu-container"> <div> <a class="brand-name nav-link" href="/">30DaysOfPython</a> </div> <ul class="nav-lists"> <li class="nav-list"> <a class="nav-link active" href="{{ url_for("home") }}">Home</a> </li> <li class="nav-list"> <a class="nav-link active" href="{{ url_for("about") }}">About</a> </li> <li class="nav-list"> <a class="nav-link active" href="{{ url_for("post") }}" >Text Analyzer</a > </li> </ul> </div> </header> <main> {% block content %} {% endblock %} </main> </body></html>
現在,讓我們刪除其他模板文件中的所有重復代碼并導入 layout.html。href 使用url_for函數和路由函數的名稱來連接每個導航路由。
主頁.html
{% extends "layout.html" %} {% block content %}<div class="container"> <h1>Welcome to {{name}}</h1> <p> 此應用程序清理文本并分析單詞、字符和 文本中出現頻率最高的詞。通過單擊文本分析器檢查它 菜單。您需要以下技術來構建此 Web 應用程序: </ p > <ul class="tech-lists"> {% for tech in techs %} <li class="tech">{{tech}}</li> {% endfor %} </ul></div>{% endblock %}
關于.html
{% extends "layout.html" %} {% block content %} < div class =" container " > < h1 >關于{{name}} </ h1 > < p > 這是 30 天的 Python 編程挑戰。如果你一直在編碼 到目前為止,你太棒了。祝賀你的工作做得好! </ p > </ div > {% endblock %}
后.html
{% extends "layout.html" %} {% block content %} < div class =" container " > < h1 >文本分析器</ h1 > < form action =" https://thirtydaysofpython-v1.herokuapp.com/post" method="POST"> < DIV > < textarea的 行=” 25 “名稱=”內容“的自動對焦> </ textarea的> </ div > <div > < input type =" submit " class =" btn " value ="處理文本"/> </ div > </ form > </ div >{% 結束塊 %}
請求方法,有不同的請求方法(GET、POST、PUT、DELETE)是常見的請求方法,它們允許我們進行 CRUD(創建、讀取、更新、刪除)操作。
在帖子中,我們將根據請求的類型使用 GET 和 POST 方法替代,請查看下面代碼中的外觀。請求方法是處理請求方法和訪問表單數據的函數。應用程序
# 讓我們從 flask 導入 flask import Flask , render_template , request , redirect , url_for import os # 導入操作系統模塊app = Flask ( __name__ ) # 停止緩存靜態文件app . 配置[ "SEND_FILE_MAX_AGE_DEFAULT" ] = 0@app.route ( "/" ) # 這個裝飾器創建 home 路由def home (): techs = [ "HTML" , "CSS" , "Flask" , "Python" ] name = "30 Days Of Python Programming" return render_template ( " home.html" , techs = techs , name = name , title = "Home" )@app.route ( "/about" ) def about (): name = "30 Days Of Python Programming" return render_template ( "about.html" , name = name , title = "About Us" )@app.route("/result")def result(): 返回 render_template("result.html")@app.route ( "/post" , methods = [ "GET" , "POST" ]) def post (): name = "Text Analyzer" if request。method == "GET" : 如果request,則返回 render_template ( "post.html" , name = name , title = name ) if request.method =="POST": content = request.form["content"] print(content) return redirect(url_for("result"))如果 __name__ == "__main__" :# 部署#使之成為生產和開發工作 port = int(os.environ.get("PORT", 5000)) app.run(debug=True, host="0.0.0.0", port=port)
到目前為止,我們已經看到了如何使用模板以及如何向模板注入數據,如何進行通用布局。現在,讓我們處理靜態文件。在project Director中創建一個名為static的文件夾,并創建一個名為css的文件夾。在 css 文件夾中創建 main.css。你的主要。css 文件將鏈接到 layout.html。
您不必編寫css文件,復制并使用它。讓我們繼續進行部署。
創建 Heroku 帳戶
Heroku 為前端和全棧應用程序提供免費部署服務。在heroku上創建一個帳戶并為您的機器安裝 heroku CLI。安裝heroku后寫下以下命令
登錄 Heroku
asabeneh@Asabeneh: ~ $ heroku 登錄heroku:按任意鍵打開瀏覽器登錄或 q 退出:
讓我們通過單擊鍵盤上的任意鍵來查看結果。當您按鍵盤上的任意鍵時,它將打開 heroku 登錄頁面并單擊登錄頁面。然后你將本地機器連接到遠程 heroku 服務器。如果你連接到遠程服務器,你會看到這個。
asabeneh@Asabeneh: ~ $ heroku 登錄heroku:按任意鍵打開瀏覽器登錄或 q 退出:打開瀏覽器到 https://cli-auth.heroku.com/auth/browser/be12987c-583a-4458-a2c2-ba2ce7f41610登錄...進行已記錄在為asabeneh@gmail.comasabeneh@Asabeneh:~ $
創建需求和Procfile
在我們將代碼推送到遠程服務器之前,我們需要一些要求
(env) asabeneh@Asabeneh: ~ /Desktop/python_for_web$ pip freezeClick==7.0Flask==1.1.1itsdangerous==1.1.0Jinja2=
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122015.html
摘要:針對的初學者,從無到有的語言如何入門,主要包括了的簡介,如何下載,如何安裝,如何使用終端,等各種開發環境進行開發,中的語法和基本知識概念和邏輯,以及繼續深入學習的方法。 ...
摘要:值得一提的是每篇文章都是我用心整理的,編者一貫堅持使用通俗形象的語言給我的讀者朋友們講解機器學習深度學習的各個知識點。今天,紅色石頭特此將以前所有的原創文章整理出來,組成一個比較合理完整的機器學習深度學習的學習路線圖,希望能夠幫助到大家。 一年多來,公眾號【AI有道】已經發布了 140+ 的原創文章了。內容涉及林軒田機器學習課程筆記、吳恩達 deeplearning.ai 課程筆記、機...
摘要:功能齊全支持考勤會議管理云盤等,適用于企業協同辦公支付工具庫,輕松完成支付模塊開發。包含訓練好的模型和微服務,啟動后可直接通過接口調用基于圖像識別的自動化框架,支持吃雞類射擊類類等游戲類型。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidd...
摘要:元組是有序且不可更改或不可修改不可變的集合。不允許重復成員。列表是有序且可修改可變的不同數據類型的集合。避免上述問題的一種方法是使用。計數橙色年齡,,,,,,,打印年齡。語法反轉水果香蕉,橙色,芒果,檸檬水果。按字母順序排序,年齡。 ...
閱讀 1868·2021-11-22 09:34
閱讀 1141·2021-10-09 09:44
閱讀 3001·2021-09-29 09:35
閱讀 3616·2021-09-14 18:01
閱讀 1465·2021-08-16 10:49
閱讀 1084·2019-08-29 14:11
閱讀 849·2019-08-29 12:47
閱讀 3067·2019-08-26 13:47