于一個程序員而言,閱讀源碼和閱讀開發文檔都是非常重要的技能,API 文檔算是眾多難啃的硬骨頭當中的一塊。多數文檔存在著交互不友好、索引不便的問題。這個時候,你就需要一款優秀的文檔閱讀器。
Dash 對自身的定位是一款面向開發人員的文檔查詢工具。而事實上,無論是從易用性還是實用性上,Dash 都是極其強大的。簡略概括如下:
可以說,Dash 絕對對得起它給自己的定位。用過之后,很可能就離不開它了。
Dash 首先是一款文檔查詢工具,這也是它最核心的地方。它基本上覆蓋了所有主流及部分非主流語言、框架和庫的文檔,多數文檔都來源于這些語言的官方,因此也包含了很多官方的入門介紹。
首先我們要下載對應的離線文檔。
但是這里下載有時候會非常慢,導致下載失敗,我們可以通過下載離線文檔,導入Dash中即可,離線文檔下載地址:https://github.com/kapeli/feeds
在里面找到我們需要下載的模塊,查看內容
這里就是下載地址,用第三方下載軟件就可以下載。解壓后放在任意地方,然后導入離線文檔即可
我們重點說說 API 查詢。在 Dash 里查詢 API 非常簡單,你愿意的話可以在所有的已下載文檔當中檢索,或者通過雙擊選中某一個特定的文檔之后,再輸入關鍵字進行檢索,這種情況下檢索范圍將會鎖定在該文檔內。Dash 的檢索效率非常高,基本上都是秒出結果的。
以Python文檔為例,它被合理地分成了「類」「方法」「模塊」「函數」「屬性」「變量」等。相比于一些在線版本的文檔,Dash這樣的離線文檔庫的優勢除了能應對更多的場景外,更在于所有的內容你都能一覽無余,而且方便檢索,無需忍受時快時慢的國外服務器。
作為一款開發文檔瀏覽器,Dash 針對許多的工具與 IDE 都做了無縫集成。基本上你有用到的、你會用到的工具都在官方支持之列了。插件的安裝方法在其 GitHub 對應的各個Repository上都有詳細的安裝指導,點擊這上面對應的工具圖標就可以找到了。
以 Alfred 為例,直接點擊圖標之后會自動跳轉到 Alfred,點擊導入就安裝好了。集成 Dash 之后搜索起來非常方便,簡直不要太方便。
感受一下隨手查閱的暢快感。
Dash內置的文檔已經很豐富了,但是往往我們需要搜索的東西更多,很多時候我們需要搜索來自Web的內容。默認情況下,Dash支持在線搜索的內容,是Google,DuckDuckGo,Stack Overflow。但是這三個軟件在國內要么不能訪問,要么訪問速度太慢,所以不能滿足我們的需要。我們可以通過下面的方式添加知乎的搜索:
Dash 還附帶了一個注釋工具,你可以對文檔的任意一個小節添加注釋,添加注釋前需要創建賬號
創建以后,在瀏覽文檔的任意地方,都可以點擊右上方的+號,就可以添加注釋了
而且還有書簽功能,你可以添加書簽來標記常用的API或者看了一半的功能,以備之后查閱。
總的來說,Dash是一款非常優秀的文檔閱讀器,不僅文檔類型全面,最重要是使用方便。閱讀源碼和閱讀開發文檔是程序員必備的技能,所以有一款方便的工具就必不可少了。
Dash是Mac平臺上的工具,我在公司使用的Windows機器,有一款同樣優秀的文檔閱讀器:Zeal,適用于Windows、Linux、Mac多個平臺,它所使用的文檔與Dash是通用的,所以下載離線文檔的方式也是適用的。
Django 3.0是一款開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
這里提供了Django 3.0中文離線文檔和英文文檔html,關于django的學習直接看這份文檔就行了,很詳細~
ps:解壓文檔后打開index.html即可~
下面簡單介紹一下文檔內容,文末附領取方式。
目錄內容:
這份權威的django官方學習資料怎么領取呢?
1.請在評論區評論+點贊+轉發
2.點擊關注,關注本頭條號
3.進入頭條號主頁面,右上角有私信功能,私信小編:django3.0
同時希望大家多多轉發分享給更多的朋友哦!
lask 輕量級WEB框架
靜態網頁:
不能與服務器交互的網頁都是靜態網頁
動態網頁:
能夠與服務器進行交互的網頁
WEB:瀏覽器 網頁(前端三劍客)
服務器:
能夠給用戶提供服務的機器就是服務器
硬件來說就是一臺主機
還要配備一個能夠接受用戶請求并給出響應用程序
APACHE
TOMCAT
IIS(Internet Information Service)
Nginx(Python用的較多)
作用:
存儲WEB所需要的信息
所有的服務器都能夠處理用戶請求(request)并作出回應(response)
能夠執行服務器端的程序
具備一定的安全性功能
框架:
是一種為了解決開放性問題而存在的一種結構
框架本身也提供了一些基本功能,
我們只需要在自己的基礎功能上搭建屬于自己的操作即可
Python的WEB框架:
Flask
Django
Tornado
Webpy
Flask框架:
什么是Flask?
Flask是一個基于Python并且依賴于jinja2模板引擎和
werkzeug WSGI(Web server Gateway Interface)
外部服務網關接口 服務的一個微型框架
Flask的框架模式:
Python的框架基本都是MTV的
M:Models 模型層
負責數據庫建模 與數據庫打交道
T:Templates 模板層
用于處理用戶顯示的網頁內容
V:Views:視圖層
用于處理與用戶交互的部分 處理用戶的請求并給出
響應內容的一段邏輯程序
而其他語言框架基本都是MVC:
M:Models 模型層
同上
V:Wiews 視圖層
視圖層 用處處理用戶顯示的內容的 等同于MTV的 T
C:Controller:控制器
處理用戶的請求與響應等同于MTV的 V
安裝:
在線安裝
sudo pip3 install flask
離線安裝:
9個依賴包 裝到吐血身亡~ 還是算了~~
Pycharm安裝:
pip3可以下載安裝包:
pip3 download 包名
驗證安裝:
import flask
版本信息:flask.__version__
安裝好以后初始化項目:
打開終端
Paris@Python:~$ mkdir Flask Paris@Python:~$ cd Flask/ Paris@Python:~/Flask$ mkdir FlaskProject Paris@Python:~/Flask$ cd FlaskProject/ Paris@Python:~/Flask/FlaskProject$ touch run.py Paris@Python:~/Flask/FlaskProject$ mkdir templates
創建好文件后用Pycharm打開
運行應用
from flask import Flask app=Flask(__name__) # 將主程序構建為 Flask應用命名為app # 以便于處理用戶request 給出response @app.route("/") def index(): return "這是首頁 Hello World!" # 配置路由 # 通過應用裝飾器函數來構建視圖函數 視圖函數必須有return # /表示網站的首頁 根路徑 if __name__=="__main__": app.run(debug=True, port=8888) # 運行app應用 并開啟調試模式 # 默認端口為5000 自定義端口為8888 可以省略
一個Flask框架就搭建好了
Flask路由(route):
什么是路由?
客戶端發送給WEB服務器 WEB服務器再將請求發送給Flask程序實例
程序實例需要知道每個url請求要運行哪些代碼,所以需要建立一個
url 到 python 函數的映射,處理url和函數之間的關系的程序就是
路由在Flask中,路由是通過 @app.route 裝飾器來表示的
路由:
@app.route('/login') def login(): return '這是登錄頁面' @app.route('/register') def register(): return '這是注冊頁面'
基本參數的路由:
# 定義帶一個參數的路由 @app.route('/show1/<name>') def show1(name): return "<h1>姓名為:%s</h1>" % name
多參數路由:
# 定義帶兩個參數的路由 參數可以更多 @app.route('/show2/<name>/<age>') def show2(name,age): return "<h1>姓名為:%s,年齡為:%s" % (name,age)
指定參數數據類型路由:
# 定義帶兩個參數的路由,其中,age參數指定為整數 @app.route('/show3/<name>/<int:age>') def show3(name,age): # age : 為 整型,并非 字符串 return "傳遞進來的參數是name:%s,age:%d" % (name,age)
Flask中所有支持的類型轉換器:
<int:age>:
類型轉換器指定類型 表示age參數是一個整數 數據類型
不寫 默認字符串類型 不能有“/” 代表一個路徑
int: 整型
float:浮點型
path: 字符串型 可以有斜杠
@app.route("/show/<name>/<int:age>") @app.route("/show/<name>/<int:age>/<float:score>") @app.route("show/<path:file/html/show>")
多URL的路由匹配:
在一個視圖函數上可以添加多個裝飾器來指定rul路由的匹配規則
一個視圖處理函數中設置多個url路由規則
# 多 URL 路由匹配 可以一直網上寫~ @app.route('/') @app.route('/index') @app.route('/<int:page>') @app.route('/index/<int:page>') def index(page=None): if page is None: page=1 return "當前頁數為:%d" % page
路由設置HTTP請求方法
路由規則允許設置對應的請求方法
只有將匹配上請求方法路徑交給視圖函數處理去執行
@app.route('/post',methods=['POST','GET']) def post(): return '這是post請求方式進來的'
只有POST請求方式允許訪問 localhost:5000/post
URL 的解析
正向解析:
程序自動解析 根據@app.route() 裝飾器中的訪問路徑來處理函數
反向解析:
通過視圖處理函數的名稱自動生成視圖處理函數的訪問路徑
Flask中提供了url_for(fun, ...)函數 用于反向解析
參數:
fun:指向函數名稱(通過app.route()裝飾后的函數)
后續:對應要構建的url上的變量
@app.route('/url') def url_views(): # 將 login() 反向解析訪問地址 logUrl=url_for('login') resp="<a href='" + logUrl + "'>我要登錄</a>" return resp # 將 show2(name,age) 反向解析訪問地址 url=url_for('show2',name='Paris',age=18) print(url) resp="<a href='" + url + "'>" + url + "</a>" 直接解析為超鏈接 return resp
特殊:
url_for("static", filename="style.css")
靜態文件反向解析
模板:
什么是模板?
還是一個包含響應文本的文件 通常也是HTMl文件
該文件中可以包含“占位變量” 來表示動態的內容
具體值 只有在請求中才能獲取 "占位變量"最后會被真實的值替換
模板最終也會被解析成響應的字符串 這一過程也稱為"渲染"
Flask實際上是使用 Jinja2 強大的模板引擎
模板的設置:
默認情況下 Flask會在程序文件夾中的 templates 子文件夾中自動尋找模板
需要收動創建 templates 子文件夾 里面放HTML文件
渲染模板:
在視圖函數中 通過 return render_tepmlate() 將模板渲染成字符串再響應給客戶端
render_template("xxx.html", arg1=value1, ...):
參數1:
xxx.html 要渲染給客戶端的HTML模板文件
參數2~n:
可以省略 要傳遞給模板動態顯示的變量占位符
返回值:
字符串
from flask import Flask, render_template app=Flask(__name__) @app.route('/') def index(): str=render_template('index.html') print(str) return str if __name__=='__main__': app.run(debug=True,port=5555)
本文來自阿里云云棲社區,未經許可禁止轉載。
更多資訊,盡在云棲科技快訊~
來科技快訊看新聞鴨~
快點關注我認識我愛上我啊~~~
*請認真填寫需求信息,我們會在24小時內與您取得聯系。