基于 docker 打包部署 python web 项目至 linux 服务器
将Python Web应用容器化
本文将讨论如何让“容器化”的Python Web应用跑在安全的沙箱里,严格的坚守在其各自的环境中(当然,除非你指定它们与其他应用进行“连接”)。 以下将介绍两站方法如何创建一个Docker容器,如何用这个容器来跑我们的Python Web应用,以及如何用一个Dockerfile来描述整个构建过程以实现完整的自动化。
如何使Flask-Migrate忽略在Models定义的数据库视图
Flask-Migrate
在使用Flask-SQLAlchemy来定义模型,然后使用Flask-Migrate自动生成迁移脚本以部署到MySQL数据库过程中,我们可能会在应用程序中使用的数据库中定义许多SQL Views辅助查询。 但是在迁移命令migrate后,Flask-Migrate现在会为该视图生成一个迁移文件,因为它认为它是一个表格。如何在迁移过程中让Flask-Migrate忽略视图?
Python3 __init__.py和__init__函数的作用
一.__init__.py文件
在python模块的每一个包中,都有一个
__init__.py
文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py
那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py
文件。 一个包是一个带有特殊文件__init__.py
的目录。__init__.py
文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果__init__.py
不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。 在python中, module(也即python的模块)是一个单独的文件来实现的,要把是py文件,或者pyc文件,甚至是C扩展的dll文件。而对于package, Python使用了文件夹来实现它,可以说,一个文件夹就是一个package,里面容纳了一些py、pyc或dll文件,这种方式就是把module聚合成一个package的具体实现。
Python3 Task and Coroutines
1. Coroutines 协程
Python3 中协程使用标准库中 asyncio
中的 async def
方法声明或者使用装饰器 @asyncio.coroutine
. 在Python3.5之后开始使用 async def
形式的协程, 并且如果不是需要兼容以前版本的话,尽量使用这种形式.
Python3 如何读取 .conf 文件配置信息
读取 .conf 文件配置信息
Python3 如何动态导入模块
使用字符串名称导入模块
Python3 元类的使用
metaclass是Python中非常具有魔术性的对象,它可以改变类创建时的行为。这种强大的功能使用起来务必小心。
本文介绍 python 元类的概念以及使用场景。
Python3 单例模式的实现
何为单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪费内存资源,尤其是在配置文件内容很多的情况下。事实上,类似 AppConfig 这样的类,我们希望在程序运行期间只存在一个实例对象。
在 Python 中,我们可以用多种方法来实现单例模式
Python3 对象的调用
Python中万物都可称为对象,但对象与对象之间也有差别。对象有可被调用和不可被调用之分。