于一个程序员而言,阅读源码和阅读开发文档都是非常重要的技能,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小时内与您取得联系。