1 Star 0 Fork 17

osfan / fpage

forked from fy / fpage 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

fpage

FPage 是一个tornado项目生成器。

能够自动创建基于 tornado + mako/jinja2 + sqlalchemy/peewee 的项目。

用法

python fpage.py startapp

特性

  • 基于 tornado

  • MVT 架构(Model, View, Template)

  • 基本的安全性开关 (secure cookie, xsrf)

  • 支持 flask 风格的 url 装饰器 @route

  • 简单 session 支持(基于 secure cookie)

  • 可选择模板引擎 mako 或 jinjia2 或 tornado 默认,已做好配置

  • 模板预定义模板变量:req static url_for csrf_token/xsrf_token

  • 集成 sqlalchemy/peewee 支持(二选一)

  • 集成类似 django 中 messages 或 flask 中 flash 的功能

目录结构

  • model 数据库交互

  • view 逻辑

  • templates 模板目录

  • lib 存放一些全局使用的工具类

特性说明

  • 支持 flask 风格的 url 装饰器 @route

    from view import route, url_for, View
    
    @route('/')
    class Index(View):
        def get(self):
            self.render()
    
        def post(self):
            pass
            
    @route('/about', name='about')
    class About(View):
        def get(self):
            self.render()
    
  • 简单 session 支持(基于 secure cookie)

    @route('/')
    class Index(View):
        def get(self):
            self.session['test'] = 'session test 1'
            del self.session['test']
            self.session['test'] = 'session test 2'
            self.render(s=self.session['test'])
  • 可选择模板引擎 mako 或 jinjia2 或 tornado 默认,已做好配置

    <body>
        ${self.body()}
        <%block name="script"/>
    </body>
    <body>
        {% block body %}{% endblock %}
        {% block script %}{% endblock %}
    </body>
  • 模板预定义模板变量:req static url_for csrf_token/xsrf_token
    req -> request object

      ${ req.current_user }

    static -> static file

      <script src="${ static('js/main.js') }"></script>
      <link rel="stylesheet" href="${ static('css/style.css') }">

    url_for -> url reverse

      <p><a href="${ url_for('jump') }">Jump Page</a></p>
      <p><a href="${ url_for('about') }">About Page</a></p>

    csrf_token -> self.xsrf_form_html()

      <form method="post" class="am-form">
          ${csrf_token}
      </form>
  • 集成 sqlalchemy/peewee 支持(二选一)
    config

    DATABASE_URI = "sqlite:///database.db"

    sqlalchemy

    from model import BaseModel
    from sqlalchemy import Column, Integer, String, Float, ForeignKey, Boolean
    
    
    class Test(BaseModel):
        __tablename__ = 'test'
        id = Column(Integer, primary_key=True, autoincrement=True)
        test = Column(String)

    peewee

    from peewee import *
    from model import BaseModel
    
    
    class Test(BaseModel):
        test = TextField()
  • 集成类似 django 中 messages 或 flask 中 flash 的功能
    view

    @route('/jump_test', name='jump')
    class Jump(View):
        def get(self):
            self.messages.error('Message Test: Error!!')
            self.redirect(url_for('about'))

    template

    % for msg in get_messages():
        % if msg.tag == 'success':
            <div class="ui-green">
                ${msg.txt}
            </div>
        % elif msg.tag == 'error':
            <div class="ui-red">
                ${msg.txt}
            </div>
        % endif
    % endfor

TODO-LIST

  • 保持更新
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2015 fy Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

FPage 是一个tornado项目生成器,能够帮你生成基于 tornado + mako/jinja2 + sqlalchemy/peewee 的项目,节省时间。 展开 收起
WTFPL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/osfan/fpage.git
git@gitee.com:osfan/fpage.git
osfan
fpage
fpage
master

搜索帮助