標籤:cxf 這一 參數 bootstrap 點擊 bat 講解 理解 comment
使用VSCode編譯python web頁面
1.先從最基礎的說起吧,關於VSCode的使用:
運行python程式與運行java,c,c++程式一樣,需要建立一個檔案,第一個檔案建議不要建立在本地的C盤,不方便尋找,檔案路徑也會一不小心很繁瑣,為之後的開發帶來不便!
第一段代碼是從https://dormousehole.readthedocs.io/en/latest/中的快速上手一文中get到的,所以建的檔案名稱和裡面的一致,方便理解,檔案夾放在d盤中 名字叫做app.py,”.py”是python檔案的統一副檔名,前面app所在位置建議用有意義的英文命名,不要用flask ,這會與flask本身衝突
開啟VScode,點擊檔案,開啟app.py檔案
運行下面的代碼 同樣是最簡單的helloworld:
from flask import Flaskapp = Flask(__name__)@app.route(‘/‘)def hello_world(): return ‘Hello World!‘if __name__ == ‘__main__‘: app.run()
要注意書寫,因為python是嚴格規範縮排的,以及底線,name和main前後都是雙底線的,
“from flask import Flask”首先我們匯入了 Flask 類。這個類的執行個體將會成為我們的 WSGI 應用。(WSGI:Web伺服器 網關介面(Python Web Server Gateway Interface,縮寫為WSGI)是Python應用程式或架構和Web伺服器之間的一種介面)
接著我們建立了這個類的執行個體。第一個參數是應用模組或者包的名稱。如果你使用一個 單一模組(就像本例),那麼應當使用 _ name _ ,因為名稱會根據這個模組是按 應用方式使用還是作為一個模組匯入而發生變化(可能是 ‘_ main _’ ,也可能是 實際匯入的名稱)。這個參數是必需的,這樣 Flask 就可以知道在哪裡找到模板和靜態檔案等東西。
接著我們使用root()裝飾器來告訴Flask出發函數的URL;
“def”用來定義後面的hello_world函數 函數名稱可用於產生相關聯的 URL ,並返回需要在使用者瀏覽器中顯示的資訊(return ‘hello world!’)
最後使用run()來運行伺服器和我們的本地應用
“if _ name =’ main _’ ”這一句是確保伺服器只會在Python解譯器下運行,而不會作為模組匯入時運行;
最後啟動並執行時候開啟cygwin中的.bat 雙擊運行後輸入以下命令:
source pyvenv/bin/activate(按下enter鍵):venv是我們建立的一個獨立的python運行環境 可以用source進入這個環境
cd /cygdrive/d/app.py(cygdrive後的是建立的包所在的位置/x/xxx.xx 輸完繼續按下enter鍵):cd是change directory(更改目錄)的英文縮寫。它的功能是更改當前的工作目錄,cygdrive/d的意思是你的windows下的整個D盤被cygwin掛載成/cygdrive/d的意思
python3 app.py(按下enter鍵)
運行正確後悔出現一行英文 中有一段連結 點擊複製 粘貼在我們的瀏覽器的網址欄上 就會出現我們想要的 Hello World這句英文。
2.幾個有用的連結:
1. PEP8 Python 編碼規範:https://www.douban.com/note/134971609/
2. Flask 學著用模板:http://blog.csdn.net/bestallen/article/details/52055061
另外開啟VSCode後 點擊檔案—喜好設定—鍵盤快速鍵會有一個很長很全的常用編譯器快速鍵,比如ctrl+s是儲存 ;ctrl+z是返回上一步 ;
3.用python做一個簡單的web頁面:
需要一個bootstrap的包 裡面含有三個檔案夾:
和一個jQuery的.js檔案
在我們在d盤中建的app.py檔案夾中建一個名稱為static 的檔案夾,內層建一個叫bootstrap的檔案夾 把準備好的bootstrap中 三個檔案夾和jQuery的檔案放進去 ,
像這樣 我們就可以在VScode中看見這幾個檔案了,
接著我們在app.py中運行下面的代碼:
from flask import Flask,render_templateapp = Flask(__name__)@app.route(‘/‘)def index(): return render_template(‘login.html‘,name=‘123‘)@app.route(‘/abc‘)def login(): return ‘hey‘if __name__ == ‘__main__‘: app.run()
render_template是一個模板 相當於我們的數學公式 這是一個已經在python庫中已經存在的模板 我們調用即可 作用是可以在我們的python中 加入更多的我們想要輸出的東西而不需要一個一個的來return;說白了,其實render_template的功能是對先引入index.html,同時根據後面傳入的參數,對html進行修改渲染。
關於@app.route及其他的裝飾器 這個文章中有詳細的講解;http://python.jobbole.com/80956/
我們需要我們的python運行出來的頁面更漂亮!這時就用到了我們python中的template模板 它是一個可以用來製作web頁面的模板;
我們首先在我們的app.py檔案夾下建立一個叫templates的檔案,在這個檔案下建立一個叫login 的HTML檔案,開始我們的web頁面編寫,
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"><title>Bootstrap 101 Template</title><!-- Bootstrap --><link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn‘t work if you view the page via file:// --><!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]--></head><body><!-- jQuery (necessary for Bootstrap‘s JavaScript plugins) --><script src="/static/bootstrap/jquery-1.12.4.js"></script><!-- Include all compiled plugins (below), or include individual files as needed --><script src="/static/bootstrap/js/bootstrap.min.js"></script><body bgcolor="#EEE5DE><div class="container"> <div class="now"> <div class="cd-md-4"> <div class="panel panel-danger"> <div class="panel-body"><marquee><b><font color="#EE6AA7"><h3>您好,請登入!</h3></font></b> </marquee> <!--走馬燈效果--> </div> </div> </div> </div></div><form class="text-center"> NAME:<input type="text" name="name"> <br/> PASSWORD:<input tupe="password" name="password"></form></body></html>
點擊ctrl+s儲存後使用cygwin的.bat運行 出現網址後粘貼到網址欄就可以了 上面的代碼是一個非常簡單的含有一個邊框 一串走馬燈特效的文字 以及表格組成的登入頁面
扔兩個有趣實用的連結:
https://www.cnblogs.com/zendu/p/4991090.html
http://www.114la.com/other/rgb.htm
今天就學到這麼多 不寫了 腰疼·········································
python+flask開發小白第二天