首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

移植 Flask 到 Java

  •  
  •   kaneg · 2015-12-05 00:01:41 +08:00 · 3755 次点击
    这是一个创建于 1417 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人从 Java 起家,现在在玩 Python ,自从试用了 Flask 这个微框架,发现居然有这么优雅的 web 框架。而且它自带的 Jinja 模板引擎也很人性化。比起 Java 的一系列大而重的框架和模板来说,二者的组合感觉就是为中小型网站快速开发而生。因为目前在搞 Jython ,所以就基于 Jython 引擎,照猫画虎地搞了一个 Java 版的 Flask ,主要功能包括:

    * 基于 Annotation 的路由
    * 引入 Jinja 模板
    * 热部署, Java 代码可以自动 reload

    目前代码放在 github ,
    主模块: https://github.com/kaneg/JFlask
    示例 app : https://github.com/kaneg/JFlask-Demo-App
    欢迎评论。
    7 回复  |  直到 2015-12-05 16:31:27 +08:00
        1
    buckethead1   2015-12-05 00:10:00 +08:00 via Android
    flask 是我学习的第一个 web 框架
    我觉得 jinja 很麻烦,看起来很蛋疼
    我还是 naive...
        2
    knightdf   2015-12-05 00:50:49 +08:00
    赞一个, flask 是我服务器端写控制和接口用的最多的框架,直接跑在 tornado 上,爽爽的
        3
    echo1937   2015-12-05 01:37:04 +08:00
    已经 Start.

    楼主请继续.
        4
    awanabe   2015-12-05 10:28:44 +08:00
    @buckethead1 jinja 用起来很方便...超级喜欢这样的模板语言, 嵌套, 模板, 还有很多公共方法...还可以使用 python 里面的方法...
        5
    brucefeng   2015-12-05 15:34:15 +08:00
    很赞。

    有个问题,现在大家对 web 框架使用的还多吗,现在架构都慢慢转向服务化, web 端的功能慢慢的弱化,很多时候只要一个路由功能也就可以了。

    另外,对于后端使用的模板引擎,这部分功能放到前端去是不是更合理,后端只需要 api 提供数据,前端自己渲染也就可以了。
        6
    kaneg   2015-12-05 16:02:02 +08:00
    @brucefeng 的确如此,对于大多数中小型网站,依赖 web 框架主要就是路由和模板,例如 PHP 中层出不穷的框架。

    把模板放到前端,你指的是不是类似 Angular 之类的前端框架?我看过一点 Angular , 有些地方,比如处理前端的一些事件的确很方便。不过,把数据和业务逻辑都放在前端来处理,安全可能是个问题
        7
    brucefeng   2015-12-05 16:31:27 +08:00
    @kaneg 模板的意思是这样的

    后端只要把相关数据传给前端就可以了,比如要展示用户(User)的 nickname 和 gender 等字段,如果用后端模板来做的话,就是把这些数据塞到模板里并且渲染成 html 传给用户端。但是如果前端自己渲染的话,后端的 api 只要吧 nickname 和 gender 数据穿过去就好了。

    模板和安全没有关系,所以这方面倒不是问题
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2581 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 14:22 · PVG 22:22 · LAX 07:22 · JFK 10:22
    ♥ Do have faith in what you're doing.