白季飞龙的个人主页

Python大杂烩

Python默认情况指Python3

1. 虚环境

2. HTTP静态文件服务器

python -m http.server 以当前目录为根目录,启动HTTP服务器

3. Python拼接HTML

以Python3和Flask为例

依赖:

app.py

from flask import Flask
from stringcase import spinalcase
from yattag import Doc
from yattag import indent

app = Flask(__name__)


@app.route("/")
def home():
    return "Hello World!"


@app.route("/placeholder/fullwidth/<height>/<content>")
def placeholder(height, content):
    doc, tag, text = Doc().tagtext()
    with tag("html"):
        with tag("body"):
            doc.attr(style="margin:0")
            with tag("div"):
                doc.attr(style=";".join(["{}:{}".format(spinalcase(k), v) for k, v in dict(
                    width="100%",
                    height=height,
                    display="flex",
                    alignItems='center',
                    justifyContent='center',
                    background="magenta",
                    fontSize="36pt"
                ).items()]))
                text(content)
    return indent(doc.getvalue())

4. 获取当前解释器的路径

env python -c "import sys; print(sys.executable)"

5. 生成随机的颜色与它的反相色

def main():
    import random
    color = random.randint(0, 0XFFFFFF)
    oppo_color = 0XFFFFFF - color
    print("Color: #{:06X}".format(color))
    print("OppoColor: #{:06X}".format(oppo_color))


if __name__ == '__main__':
    main()

输出:

Color: #C78AE3
OppoColor: #38751C

6. Python输出彩色日志

from colorlog import logging

logging.basicConfig(level='DEBUG',
                    format='%(black)s%(asctime)s.%(msecs)03d %(log_color)s%(levelname)8s%(reset)s %(black)s%(name)-10s %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
logging.debug("DEBUG")
logging.info("INFO")
logging.warning("WARN")

Python默认不开启日志,需要调用logging.basicConfig()显式开启

Python默认的日志级别是WARN

Python默认的日志实现不支持控制台颜色,只是直接打印到了标准错误流。使用第三方库(colorlog)可以启用彩色日志

Python的日期时间格式只有微秒,没有毫秒,所以在日志里打毫秒,要单独使用标识%(msecs)03d

控制台输出:

2018-12-07 15:40:22.877    DEBUG root       DEBUG
2018-12-07 15:40:22.877     INFO root       INFO
2018-12-07 15:40:22.877  WARNING root       WARN

7. 用浏览器查看Python和各模块的文档

python -mpydoc -b 在本机启动文档服务器到任意端口,并用浏览器打开

8. Python本机调试

Python本机调试,即使用PDB调试,主要有两种方式

方法一 代码中设置断点

import pdb
pdb.set_trace()

可以使用pdb.set_trace()在当前行设置断点,执行python程序时,会在断点处进入PDB控制台

方法二 直接调试Python脚本

python -mpdb helloworld.py 执行此命令,会进入PDB控制台,并断在第一行代码处

PDB常用命令

PDB的改进版

ipdbPDB结合IPython的改进版,支持语法高亮,可随时执行表达式,拥有更好的交互体验

安装方式: pip install ipdb

使用方式: python -mipdb helloworld.py


漫漫路,莫论逍遥;潜心修,只为悟道