by @rg3915

Weppy é um framework full-stack

escrito em Python

desenhado com simplicidade em mente.

Weppy foi criado por

Giovanni Barillari

github.com/gi0baro/weppy

V 1.2.10

py2.py3

 

Requer distribuições:

 

Benchmarks diz que com Weppy sua aplicação processa requisições muito mais rápido que outros frameworks.

Baterias Inclusas:

  • Sistema de rotas simples
  • ORM bonito com migrações integradas
  • Sistema da validação elegante
  • Sistema de autenticação seguro
  • Geração de formulários úteis
  • Sistema direto de linguagem múltipla
  • Sistema de templates poderoso e amigável
  • Gerenciamento de pipeline de ativos (extensão)
  • Haml template (extensão)
$ pip install weppy

ESCREVA CÓDIGO ELEGANTE

Foco no produto

from weppy import App, request 
from weppy.orm import Database, Model, Field 
from weppy.tools import service 

class Task(Model): 
    name = Field.string() 
    is_completed = Field.bool(default=False) 

app = App(__name__) 
db = Database(app) 
db.define_models(Task) 
app.pipeline = [db.pipe] 


@app.route(methods='get') 
@service.json 
def tasks(): 
    page = request.params.page or 1 
    return { 'tasks': Task.all().select( paginate=(page, 20))}

UM ORM BONITO

Relações em uma brisa

from weppy.orm import Model, Field, has_many, belongs_to 

class User(Model): 
    name = Field.string() 
    email = Field.string() 
    has_many('posts') 

    validation = { 'email': {'is': 'email'} } 


class Post(Model): 
    belongs_to('user') 
    body = Field.text() 

    validation = { 'body': {'presence': True} }

UMA INTERFACE DE CONSULTA PODEROSA

Agregação facilitada

class Event(Model): 
    location = Field.string() 
    happens_at = Field.datetime() 

db.define_models(Event) 
events_count = Event.id.count()
 
db.where(
    Event.happens_at.year() == 1955 
).select(
    Event.location, 
    events_count, 
    groupby=Event.location, 
    orderby=~events_count, 
    having=(events_count > 10))

UM MOTOR DE TEMPLATE LIMPO

Esqueça a sintaxe de templates. Use Python.

{{extend 'layout.html'}} 

<div class="post-list">
{{for post in posts:}} 
    <div class="post"> 
         <h2>{{=post.title}}</h2> 
    </div>
{{pass}} 
{{if not posts:}} 
    <div> 
        <em>No posts here so far.</em> 
    </div> 
{{pass}} 
</div>

by @rg3915

Made with Slides.com