Closed greyli closed 4 years ago
Hi Andy,收到你的邮件后这几天大致看了一遍代码,下面是一些可以改进的地方:
获取页数查询参数这几行:
if "page" in request.args: page = int(request.args["page"]) else: page = 1
可以简化为:
page = request.args.get('page', 1, int) # get(key, default=None, type=None)
在编辑文章这里,因为 CKEditor 通过表单类字段实现,所以预设置编辑器字段值也可以通过给表单字段的 data 属性赋值实现,不需要使用 JavaScript:
form = EditForm() form.conent = Article().query_by_id(id).content
因为 CSRF 令牌字段也是隐藏字段(<input type="hidden">),所以调用 form.hidden_tag() 会同时渲染 CSRF 令牌字段,不需要再调用 form.csrf_token()。比如上传表单这里。
<input type="hidden">
form.hidden_tag()
form.csrf_token()
主要就是这些了,都没有实际测试,有些可能没有考虑到你的特殊需求,你再具体确认。
template_folder那个不知道为什么在PythonAnywhere端部署的时候报Template not found 错误,所以我手动加了这么一行,居然就没有报错了。 其它的地方都按照你的建议改进了
Well done!
Hi Andy,收到你的邮件后这几天大致看了一遍代码,下面是一些可以改进的地方:
工厂函数和配置
获取分页查询参数
获取页数查询参数这几行:
可以简化为:
预设置表单内容
在编辑文章这里,因为 CKEditor 通过表单类字段实现,所以预设置编辑器字段值也可以通过给表单字段的 data 属性赋值实现,不需要使用 JavaScript:
表单隐藏字段渲染
因为 CSRF 令牌字段也是隐藏字段(
<input type="hidden">
),所以调用form.hidden_tag()
会同时渲染 CSRF 令牌字段,不需要再调用form.csrf_token()
。比如上传表单这里。主要就是这些了,都没有实际测试,有些可能没有考虑到你的特殊需求,你再具体确认。