Python包工具梳理

distutils 是 python 标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。

假设目录创建三个文件foo.py、bar.py和setup.py

1
2
3
4
5
6
7
8
9
from distutils.core import setup
setup(
name='fooBar',
version='1.0',
author='Will',
author_email='wilber@sh.com',
url='http://www.cnblogs.com/wilber2013/',
py_modules=['foo', 'bar'],
)

在该目录中运行 python setup.py sdist ,会得到以下输出,同时生成了一个”fooBar-1.0.zip”包。

甚至能打包成 rpm 或者 exe 安装包:

1
2
python setup.py bdist_rpm
python setup.py bdist_wininst

Mercurial

今天想看在一个网站看https://bitbucket.org/leafstorm/ryshcate/src/c828fd08ad241756502124602e6a1196e862f1d1/ryshcate/?at=default项目的源码,知道了一个叫hg的版本控制工具,安装如下

Mercurial 是强大的分布式版本控制系统. 本文将介绍如何在 Ubuntu 下快速的最新版的安装Mercurial, 其实只要几条命令就可以搞定了.

sudo add-apt-repository ppa:tortoisehg-ppa/releases
sudo add-apt-repository ppa:mercurial-ppa/releases
sudo apt-get update
sudo apt-get install mercurial python-nautilus tortoisehg

Flask

flask快速启动

flask代码块
http://flask.pocoo.org/snippets/

flask的网站
http://flask.pocoo.org/community/poweredby/

flask中文学习网
http://flask123.sinaapp.com/article/63/
http://docs.pythontab.com/
http://python.usyiyi.cn/

flask最佳实践
https://spacewander.github.io/explore-flask-zh/1-introduction.html

flask大型项目目录
https://github.com/Robpol86/Flask-Large-Application-Example

插件
flask_themes: 皮肤,博客必不可少的
flask_sqlalchemy: flask对sqlalchemy的插件,定义了一些方法,使创建models和输出query更方便
flask_wtf: 对wtforms的插件,默认加入了csrf功能(防止表单重复提交)和Recaptcha(验证码)
flask_uploads: 上传文件的插件
flask_cache: 缓存插件(支持memcached,gaememcached,filesystem,simple等)
flask_principal: 权限插件 (众多插件中比较复杂的一个, 但也是作用很大的一个),支持各种权限方式,较django admin的权限,我只能说,这个插件让你知道,权限其实很简单。
flask_mail: 发送邮件插件
flask_script: 项目管理插件,类似django的manager
flask_babel: 多语言支持,使用非常方便,(request.accept_languages.best_match判断语言有点怪,好象会根据系统语言判断,待深究)
singals: 其实信号不常用,因为sqlalchemy太强大了,不过也会有用它的地方的。
twitter: 这个非flask插件,是twitter的api,很有意思的功能,在线发推啦(国内主机不能支持这个功能)
pygments: 代码高亮
https://github.com/humiaozuzu/awesome-flask

项目快速启动脚本

每个团队都有自己的项目规范,分享平时的开发中经常用到的项目结构,仅供参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# !/bin/bash
dirname=$1
if [ ! -d "$dirname" ]
then
mkdir ./$dirname && cd $dirname
mkdir ./application
mkdir -p ./application/{controllers,models,static,static/css,static/js,templates}
touch {manage.py,requirements.txt}
touch ./application/{__init__.py,app.py,configs.py,extensions.py}
touch ./application/{controllers/__init__.py,models/__init__.py}
touch ./application/{static/css/style.css,templates/404.html,templates/base.html}
echo "File created"
else
echo "File exists"
fi

input框中value与placeholder的区别

input框中value与placeholder的区别

value:是input中预先放置的文字,当鼠标点击之后依然存在,是值的一部分。
placeholder:是input中输入位置的默认显示的文字,鼠标点击后仍旧显示,但不属于值,类似于背景。

requirements.txt文件

Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

在虚拟环境中使用pip生成:

1
(venv) $ pip freeze >requirements.txt

安装或升级包后,最好更新这个文件。

当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:

1
(venv) $ pip install -r requirements.txt

其他工具可以尝试pigar,pipreqs