python的flask框架難學(xué)嗎
Flask框架難學(xué)嗎?它和Django哪個(gè)更容易一些,這可能是學(xué)Python web開發(fā)的同學(xué)經(jīng)常問(wèn)的問(wèn)題,下面來(lái)說(shuō)一下flask框架。
Flask是python的web框架,最大的特征是輕便,讓開發(fā)者自由靈活的兼容要開發(fā)的feature。
為什么要從Flask開始學(xué)習(xí)web框架?
1.python語(yǔ)言的靈活性給予了Flask同樣的特征;
2.無(wú)論是用戶畫像還是產(chǎn)品推薦,python相比其他語(yǔ)言都有極大的優(yōu)勢(shì);
3.Flask輕便,容易上手,試錯(cuò)成本低。
所以,從搭建一個(gè)輕便的博客出發(fā),既要容易上手實(shí)現(xiàn),又要能夠在后期擴(kuò)展用戶畫像和產(chǎn)品推薦,我選擇Flask作為web框架。
Flask上手前提少,能夠極大幫助初學(xué)者快速理解web開發(fā),這也是我喜歡Flask的原因。
(1)面向?qū)ο缶幊?Object-Oriented Programming, OOP)
相信絕大多數(shù)人都接觸過(guò)OOP,比如使用Java, Python, Go等。在Flask中,涉及基礎(chǔ)OOP的概念,包括對(duì)象、類、繼承、封裝等。
(2)python基礎(chǔ)
Flask中涉及簡(jiǎn)單python概念,包括模塊、包、裝飾器、模塊等。
(3)命令行基礎(chǔ)
大部分的開發(fā)都繞不開命令行,F(xiàn)lask同樣要求基礎(chǔ)命令行操作,例如上傳服務(wù)器、查詢文件、修改配置文件等。
(4)數(shù)據(jù)庫(kù)基礎(chǔ)
web開發(fā)會(huì)產(chǎn)生數(shù)據(jù)管理的問(wèn)題,雖然可以使用非數(shù)據(jù)庫(kù)的方式搭建靜態(tài)網(wǎng)頁(yè),但從長(zhǎng)遠(yuǎn)來(lái)看將,掌握一門基礎(chǔ)的數(shù)據(jù)庫(kù)工具是很有必要的。比如結(jié)構(gòu)化數(shù)據(jù)庫(kù)Mysql, Postgresql,非結(jié)構(gòu)化的MongoDB, Redis等。
(5)前端基礎(chǔ)
雖然搭建網(wǎng)站主要是后臺(tái)邏輯編寫,但今天越來(lái)越多的人在意前臺(tái)展現(xiàn),因此Flask除了后臺(tái)python語(yǔ)言的要求外,還要求掌握基礎(chǔ)的html, JavaScript, CSS。
(6)版本控制(增強(qiáng))
版本控制是所有程序開發(fā)的基礎(chǔ),了解基礎(chǔ)的版本控制可以大大提高開發(fā)的效率。掌握基礎(chǔ)的git技能會(huì)提高Flask網(wǎng)站開發(fā)速度。
安裝
使用virtualenv或者python3.3以上的pyvenv建立虛擬環(huán)境來(lái)配置開發(fā)環(huán)境。
可以通過(guò)pip方便的配置flask:
$ pip install flask
初始化(Initialization)
(1)創(chuàng)建flask實(shí)例對(duì)象
flask程序必須創(chuàng)建一個(gè)程序?qū)嵗?,常用方法?/p>
from flask import Flask app = Flask(__name__)
這里的app就是一個(gè)程序?qū)嵗?,客戶端(一般是瀏覽器)將請(qǐng)求發(fā)送給服務(wù)端Web服務(wù)器,Web服務(wù)器再把請(qǐng)求發(fā)給Flask實(shí)例。
(2)構(gòu)建實(shí)例對(duì)象從URL到python函數(shù)的映射關(guān)系
程序?qū)嵗枰浪蠻RL對(duì)應(yīng)的執(zhí)行代碼,所以要有從URL到python函數(shù)的映射關(guān)系。處理URL到python函數(shù)映射關(guān)系的程序一般叫做路由(Router)。
Flask實(shí)現(xiàn)中一般通過(guò)python裝飾器來(lái)實(shí)現(xiàn),例如:
@app.route('/')
def index():
return '<h1>test</h1>'
上面的程序從程序化實(shí)例app開始,構(gòu)建了根目錄'/'的路由,具體實(shí)現(xiàn)的程序是index()函數(shù),返回了一段html代碼'test'字符串。
路由所對(duì)應(yīng)的程序稱為視圖函數(shù)(view function),即上面的index()函數(shù)。
(3)啟動(dòng)服務(wù)器
程序?qū)嵗胷un方法來(lái)啟動(dòng)服務(wù)器,例如:
if __name__ == '__main__': app.run(debug=True, port=8777)
上面的程序是常見套路,當(dāng)前python文件被執(zhí)行的時(shí)候,運(yùn)行flask實(shí)例化對(duì)象的run方法,啟動(dòng)服務(wù)器,同時(shí)上面程序設(shè)定了兩個(gè)常用參數(shù):debug為True,端口是8777,避免和其他應(yīng)用的端口沖突。
(4)請(qǐng)求上下文
Flask使用上下文把一些視圖函數(shù)的對(duì)象變成全局可訪問(wèn),共有4中模式:

模板
業(yè)務(wù)邏輯和表現(xiàn)邏輯分開,才能開發(fā)出易維護(hù)的網(wǎng)站,表現(xiàn)邏輯往往放在模板中。
Flask的模板默認(rèn)在根目錄的templates中,例如:
from flask import Flask, render_templatefrom datetime import datetime
app = Flask(__name__)@app.route('/<name>')def index(name):
return render_template('index.html', name=name)
if __name__ == '__main__':
app.run(debug=True, port=8777)
index.html頁(yè)面可以獨(dú)立出來(lái)專門處理網(wǎng)站的表現(xiàn)邏輯,例如:
{% block title %}Main{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>Hello World!</h1>
<h2>Hello,
{% if name %}{{ name }}
{% else %}Stranger{% endif %}!
</h2>
</div>
{% endblock %}
Flask默認(rèn)使用Jinjia2進(jìn)行模板渲染,可以用一些控制語(yǔ)句,例如上面的if else判斷。
以上就是python的flask框架難學(xué)嗎的詳細(xì)內(nèi)容,更多關(guān)于flask框架難嗎的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python+django+selenium搭建簡(jiǎn)易自動(dòng)化測(cè)試
這篇文章主要介紹了python+django+selenium搭建簡(jiǎn)易自動(dòng)化測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
windows10在visual studio2019下配置使用openCV4.3.0
這篇文章主要介紹了windows10在visual studio2019下配置使用openCV4.3.0,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
如何使用python的opencv實(shí)現(xiàn)人臉識(shí)別
這篇文章主要介紹了使用python的opencv實(shí)現(xiàn)人臉識(shí)別功能,本項(xiàng)目主要使用python語(yǔ)言,主要的模塊庫(kù)有os,opencv-python,opencv-contrib-python,需要的朋友可以參考下2023-12-12
Python實(shí)現(xiàn)搜索算法的實(shí)例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)搜索算法,文中通過(guò)實(shí)例代碼給大家分享高級(jí)搜索算法的想法,分為線性搜索和插值搜索,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
django 2.0更新的10條注意事項(xiàng)總結(jié)
Django 是 Python Web 開發(fā)最常用的框架之一,跟進(jìn)它的最新變化絕對(duì)是必須的。下面這篇文章主要給大家介紹了關(guān)于django 2.0更新的10條注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2018-01-01
舉例講解Python的Tornado框架實(shí)現(xiàn)數(shù)據(jù)可視化的教程
這篇文章主要介紹了舉例講解Python的Tornado框架實(shí)現(xiàn)數(shù)據(jù)可視化的教程,Tornado是一個(gè)異步的高人氣開發(fā)框架,需要的朋友可以參考下2015-05-05
python 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的總結(jié)
這篇文章主要介紹了python 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的使用總結(jié),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01

