python flask搭建web應(yīng)用教程
python flask搭建web應(yīng)用教程
1.flask介紹
2.所需工具和環(huán)境
3.搭建flaskApp
4.具體程序編寫
5.綜上
1.flask介紹
flask是一款十分輕量級的python Web應(yīng)用框架,也被認(rèn)為是一種微框架,我最初喜歡使用是因?yàn)閒lask中提供的那一套使用的注解跟我當(dāng)時在公司中使用java開發(fā)的系統(tǒng),里面使用的restful的框架jersey的用法比較像,都十分方便,簡潔,等到我熟悉使用flask框架之后,就挺喜歡這種微框架了,使用方便,配置簡單,也可以進(jìn)行克重擴(kuò)展,滿足各自的需求,其中在這些里面還有一個flask restplus,將swagger工具整合到python里面,在進(jìn)行相應(yīng)測試的時候十分方便,這個放到下一期再講。
2.所需工具和環(huán)境
這一次運(yùn)行flask需要使用的flask環(huán)境就不在物理機(jī)上安裝運(yùn)行了,直接使用上一篇講述的virtualenv來安裝flask,寫出來的app demo都是依賴在虛擬環(huán)境運(yùn)行的,以下是我們這次演示所需要的python工具和相應(yīng)包。
pycharm 2016
virtualenv
pytohn 2.7
flask
以pycharm作為python ide, virtualenv以python 2.7創(chuàng)建我們的python運(yùn)行環(huán)境,并用 pip install flask,環(huán)境搭建基本就完成了,下面是具體流程。
3.搭建flaskApp
3.1 設(shè)置虛擬化環(huán)境
打開pycharm,新建工程命名為flaskApp,完成后如下:
現(xiàn)在基本是一個空工程,現(xiàn)在打開控制臺,輸入以下命令,創(chuàng)建虛擬化環(huán)境:
virtualenv venv
控制臺輸出完成后,將會在當(dāng)前目錄中創(chuàng)建一個venv文件夾,里面是我們運(yùn)行python的虛擬化環(huán)境,在這里我并沒有指明使用哪種版本的python環(huán)境是因?yàn)楫?dāng)前系統(tǒng)默認(rèn)的環(huán)境是python2.7,如果想使用python3.0以上可以參考前一篇文章virtualenv介紹及基本使用來完成。
現(xiàn)在要做的第二步就是啟動當(dāng)前的虛擬化環(huán)境,輸入命令source venv/bin/active,完成后控制臺將會如下所示:
(venv) localhost:flaskApp xiaxuan$ 表示我們的虛擬化環(huán)境啟動成功,但是現(xiàn)在并不是表示當(dāng)前pycharm中當(dāng)前工程的工作環(huán)境就是venv中的虛擬化環(huán)境,這里要設(shè)置pycharm中的python interpreter改為當(dāng)前項目的運(yùn)行環(huán)境才行。
安裝flask的命令如下:
pip install flask
由于虛擬化環(huán)境,所以不需要root權(quán)限,十分方便。
在安裝完相應(yīng)依賴,設(shè)置好python運(yùn)行環(huán)境后,在項目根目錄下新建requirements.txt文件,這個文件主要就是記載當(dāng)前項目安裝了那些依賴,文件內(nèi)容如下:
flask==0.12 Jinja2==2.9.5
這是目前安裝的依賴,前面是包名,后面是版本號,由于這個的存在我們可以直接在項目沒有安裝這些package之前,將所需的package寫進(jìn)來,然后在控制臺使用pip install -r requirements.txt,就可以將這些依賴全部安裝進(jìn)來。
3.2 搭建flask工作目錄
一個完整的flask項目的完整目錄以及基本的如下所示:
test: 測試文件的位置
templates: html文件存放位置
static: 靜態(tài)文件css和js存放位置
views.py: 主要接口編寫文件,目前是所有的接口都寫在這里,但是實(shí)質(zhì)上要進(jìn)行一定的分模塊寫接口,這個涉及到的技術(shù)是blueprint,這個在后期進(jìn)行講解。
models.py: 對象的定義
run.py: 啟動運(yùn)行文件
config.py: 配置文件
manager.py: 用于啟動程序以及其他的程序任務(wù)
以上就是簡單的flask項目基本目錄。
4. 具體程序編寫
4.1源碼
views.py:
# cong:utf-8 from flask import jsonify from flask import render_template from app import app @app.route("/") def index(): return render_template("index.html") @app.route("/hello", methods=['GET', ]) def hello(): return jsonify(msg="hello world!")
上圖提供兩個接口,一個是渲染視圖index.html,一個是返回json結(jié)果,較為簡單,而在flask中接口的路由就是一個簡簡單單的注解app.route完成的,指定是哪一種http請求訪問也是非常簡單的,指定methods即可,methods是一個數(shù)組,即GET,POST可以同時在一個請求之中,但是我們在寫接口的時候,一般都會區(qū)分清楚。
在上面有一個
from app import app,這個需要提一下,這個在app包中的init.py文件之中聲明的,如下:
# coding:utf-8 from flask import Flask app = Flask(__name__) from app import views
在這里聲明了app對象,在views中我們引用了app,同時在下面一個文件run.py中,app起著啟動整個項目的作用,run.py源碼如下:
# coding:utf-8 from app import app if __name__ == '__main__': app.run()
十分簡單明了,app.run()整個項目便運(yùn)行起來了,在這里運(yùn)行的時候,項目是默認(rèn)的端口為5000,如果需要指定端口,app.run()方法中指定port即可。
4.2 運(yùn)行
啟動run.py后,控制臺如下:
控制臺輸出已經(jīng)在5000端口上運(yùn)行起來,現(xiàn)在我們請求http://localhost:5000,轉(zhuǎn)向界面為:
這是先前views.py中的第一個接口,渲染index.html,index.html中的內(nèi)容就是hello world。
訪問第二個接口,url為http://localhost:5000/hello,結(jié)果如下:
返回json數(shù)據(jù)。
5. 綜上
flask這種微框架搭建和運(yùn)行都是一種比較簡單的事情,但是在面對一些并發(fā)量比較高的場景的時候,基本就支撐不住了,后續(xù)講述如何應(yīng)對這一種場景。
在多模塊項目編寫的時候,接口就不能放在一個views.py文件之中,需要分模塊存放,這個涉及到了blueprint技術(shù),在下一期中將講述這個。
以上這篇python flask搭建web應(yīng)用教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python實(shí)現(xiàn)將多表分批次從數(shù)據(jù)庫導(dǎo)出到Excel
這篇文章主要介紹了使用Python實(shí)現(xiàn)將多表分批次從數(shù)據(jù)庫導(dǎo)出到Excel,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python歐拉角和旋轉(zhuǎn)矩陣變換的實(shí)現(xiàn)示例
在計算機(jī)圖形學(xué)中,歐拉角和旋轉(zhuǎn)矩陣是描述物體旋轉(zhuǎn)的常用方法,本文主要介紹了python歐拉角和旋轉(zhuǎn)矩陣變換的實(shí)現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03python字符串string的內(nèi)置方法實(shí)例詳解
這篇文章主要介紹了python字符串string的內(nèi)置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧2018-05-05Python操作Excel神器openpyxl使用教程(超詳細(xì)!)
openpyxl庫是一個很好處理xlsx的python庫,下面這篇文章主要給大家介紹了關(guān)于Python辦公自動化openpyxl使用的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Python中DataFrame轉(zhuǎn)列表的最全指南
在Python數(shù)據(jù)分析中,Pandas的DataFrame是最常用的數(shù)據(jù)結(jié)構(gòu)之一,本文將為你詳解5種主流DataFrame轉(zhuǎn)換為列表的方法,大家可以根據(jù)需求進(jìn)行選擇2025-03-03Python3環(huán)境安裝Scrapy爬蟲框架過程及常見錯誤
這篇文章主要介紹了Python3環(huán)境安裝Scrapy爬蟲框架過程及常見錯誤 ,本文給大家介紹的非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07