1. 程式人生 > >python+flask開發小白第二天

python+flask開發小白第二天

web服務器 root 常用 ·· 組成 mouse port sheet targe

使用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 Flask
app = 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_template

app = 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開發小白第二天