flask 伪静态的问题

2020-04-27 22:00:06 +08:00
 wework
hu.is 目前这个网站用的 flask 框架,目前只有一个路由入口 ("/") 以及唯一模板 /templates/index.html,现在查询域名的时候,只能通过表单提交,通过 ajax 请求返回数据渲染到首页

我希望通过 hu.is/xxx.com 这样的伪静态访问方式,然后加载 /templates/index.html,同时发起 ajax 请求返回数据。

我是第一次用 flask 做这种 web 应用,不知到这种伪静态访问在 flask 这里是怎么实现的,请给点提示哇,谢谢各位
1107 次点击
所在节点    问与答
2 条回复
gwy15
2020-04-27 23:00:53 +08:00
flask 的 jinja2 引擎是服务器端渲染的那种,先拉 html 回来再 ajax 会多一个 RTT,也不太利于 SEO 。

服务器渲染的话,可以这么做:

@route('')
def index():
return render_template('.html', domain=None, detail='')

@route('/<string:domain>')
def direct_query(domain):
return render_template('.html', domain=domain, detail=internal_api(domain))

模板里面判断 domain 是否是 None,生成 DOM 就可以了。

如果要按你说的,先“伪静态”(楼主原来写 php 的? XD )再 ajax,那直接把成品 index.html 丢给 flask 的 static 处理,js 里面解析 url 就行了,甚至没必要渲染模板。

或者直接上前端框架( vue 、etc.),flask 只负责 ajax 就行了。
wework
2020-04-28 06:20:14 +08:00
@gwy15 谢谢你的回答,那么多年都是玩 PHP 的,开始搞 flask 这种,一下子接受不了,确实需要更多时间消化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666749

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX