andyzhouty / lsfd202201v3

The 3rd version of LSFD202201 Class Website.
https://ls202201.pythonanywhere.com
MIT License
3 stars 0 forks source link

改进建议 #2

Closed greyli closed 4 years ago

greyli commented 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()。比如上传表单这里。

主要就是这些了,都没有实际测试,有些可能没有考虑到你的特殊需求,你再具体确认。

andyzhouty commented 4 years ago

template_folder那个不知道为什么在PythonAnywhere端部署的时候报Template not found 错误,所以我手动加了这么一行,居然就没有报错了。 其它的地方都按照你的建议改进了

greyli commented 4 years ago

Well done!