整理我遇到的 Python 的疑难问题
1 如果字典里一个键指向一个实例,深拷贝会拷贝出一个新的实例吗?
不会:
class foo:
def __init__(self):
print('do init foo')
a = {'cls': foo()}
a
# -------------------
do init foo
{'cls': <__main__.foo at 0x7fd18a246590>}
# -------------------
import copy;
b = copy.deepcopy(a)
# -------------------
b
{'cls': <__main__.foo at 0x7fd18a247a50>}
2 jinja2 怎么不转意的输出 html
目标是把下图中 <h2>
内容正常 extend 到 html里面。
在 jinja 变量后面加个 safe 即可:
{{ post.content.get('html')|safe }}
ref: https://flask.palletsprojects.com/en/2.2.x/templating/#controlling-autoescaping
3 多个装饰器时的顺序问题
比如自定义了一个多线程装饰器 async_exc:
def async_exc(func):
def wrap(*args, **kwargs):
Thread(target=func, args=args, kwargs=kwargs).start()
return wrap
它和staticmethod
一起装饰一个函数时,要把staticmethod
放到最外面。
4 flask jinja2 模板里面有哪些环境变量?
jinja2 variable in flask:
ref: https://flask.palletsprojects.com/en/2.2.x/templating/#standard-context
我的需求是第一次访问 web 时,设置这个 site config,然后把这个配置显示到 jinja2 模板里
app = Flask(__name__)
app.secret_key = getenv('DETA_PROJECT_KEY')
app.config['site_info'] = db.get('site_info')
@app.route('/', methods=["GET"])
def index():
if not app.config['site_info']:
return redirect(url_for('setup'))
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现