flask常用插件

发布在 Python

2015-08-28更新
不可否认django是一个功能齐全的、文档最完善的、最容易入门的python框架,但随着业务发展,发现并没有用到django最强大、最方便的后台管理功能。同时相比web.py、flask也确实“重”了一些,所以经过考虑决定将框架换为flask。如果说django是一个组装好的变形金刚,那么flask则是乐高积木,小巧而灵活,可以根据需要选择不同的功能扩展。下面列出了我使用过的一些插件,持续补充…

flask官网

https://dormousehole.readthedocs.org/en/latest/index.html
这个就不多解释了。

jinja2

http://docs.jinkan.org/docs/jinja2/index.html
flask默认模板引擎。

sqlalchemy

http://www.sqlalchemy.org/
如果喜欢用ORM操作数据的话,这个可以说是不错的选择,用来替代django自身提供的ORM系统。

flask-sqlalchemy

http://flask-sqlalchemy.pocoo.org/2.0/
这个是flask插件,对sqlalchemy进行了一些封装。

flask-login

https://flask-login.readthedocs.org/en/latest/
提供用户登录、登出等相关操作。

flask-wtf

https://flask-wtf.readthedocs.org/en/latest/
提供表单相关功能,基于wtform.

flask-bcrypt

https://flask-bcrypt.readthedocs.org/en/latest/
提供加密功能,将字符串加密。

flask-user

https://pythonhosted.org/Flask-User/

基本上来说,上面三个插件就可以构造出一个用户系统了,但还有一个完整的实现了相关用户功能的插件叫做flask-user,不过这个插件对于我的业务来说并不是特别适用,需要进行修改的地方过多,所以我就用上面的三个自己写了一个。

flask-cache

https://pythonhosted.org/Flask-Cache/
提供缓存的相关功能。

flask-migrate

https://flask-migrate.readthedocs.org/en/latest/

提供数据库迁移功能,比如改了个字段什么的不用重建数据库了。

flask-script

https://flask-script.readthedocs.org/en/latest/

这个十分好用,用来执行flask脚本的。什么意思呢?就是flask中有很多操作需要上下文环境的,有了这个东西就不用每次都启动flask环境了。结合flask-migrate进行数据库迁移、结合flask-cache进清空缓存都爽歪歪。

flask-restful

https://flask-restful.readthedocs.org/en/0.3.4/

看名也知道了,提供restfulapi接口的,类似django-rest-framework。

flask-less

https://flask-restless.readthedocs.org/en/latest/

也是提供restfulapi接口的,这两个提供接口的插件相比,上一个比较灵活,而这个比较简单快捷。

flask-httpauth

https://flask-httpauth.readthedocs.org/en/latest/

一个简单的HttpAuth插件。

flask-uploads

文件上传的插件,这里需要注意,使用pip安装的flask-uploads是 https://pythonhosted.org/Flask-Uploads/ 这个作者的,还有一个版本的https://github.com/FelixLoether/flask-uploads 这两个并不一样。

flask-cloudy

https://github.com/mardix/flask-cloudy

还是文件上传,支持上传到各种云环境或者本地,我没深入研究有兴趣的可以自己看。

flask-mail

https://pythonhosted.org/flask-mail/

发送邮件的,这里我使用时需要把官网的
from flaskext.mail import Mail
改成
from flask.ext.mail import Mail

评论和分享

本来用浏览器插件+ss翻墙翻的好好的,结果最近不知道哪里抽风,一访问google就给我跳转到”We are sorry”页面,提示说电脑自动向google发送了一些奇怪的东西,不过使用vpn则没有这个问题。

但使用vpn则无法访问公司内网,关于这点mac上处理的就非常好,当同时使用多个vpn时mac会自动根据访问目标不同而切换不同的vpn线路。既然fedora上没有自动切换功能,但同为的*unix系统肯定是有解决办法的。

目标:使用vpn翻墙同时能访问公司内网

达成目标的核心原理就是路由表,未使用vpn时路由表如下:

1
2
3
4
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 1024 0 0 enp2s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

当链接vpn后路由表变化为:

1
2
3
4
5
6
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 1024 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.3.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
198.74.121.155 192.168.0.1 255.255.255.255 UGH 0 0 0 enp2s0

同时网卡信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.0.37 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::b283:feff:fe9c:474b prefixlen 64 scopeid 0x20<link>
ether b0:83:fe:9c:47:4b txqueuelen 1000 (Ethernet)
RX packets 202847 bytes 212380485 (202.5 MiB)
RX errors 0 dropped 276 overruns 0 frame 0
TX packets 110180 bytes 12264625 (11.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 8165 bytes 8007889 (7.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8165 bytes 8007889 (7.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400
inet 192.168.3.220 netmask 255.255.255.255 destination 192.168.3.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 81 bytes 42977 (41.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 92 bytes 17147 (16.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

既然原理就是添加路由信息,那么使用route add命令即可,指定4段网络使用原来的0.1:

1
sudo route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.0.1 dev enp2s0

添加后如下:

1
2
3
4
5
6
7
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 1024 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.3.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.4.0 192.168.0.1 255.255.255.0 UG 0 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
198.74.121.155 192.168.0.1 255.255.255.255 UGH 0 0 0 enp2s0

这样再访问4段内网就可以了。

评论和分享

  • 第 1 页 共 1 页
作者的图片

Roy

微信公众号:hi-roy


野生程序猿


China