Používání baňka / plán pro některé statických stránek

hlasů
4

Takže jsem na to, jak vytvořit stránky s baňky aniž by bylo nutné uvádět každý pohled trochu zmatený.

Jak bych udělat modrý tisk, který by pickup na stránkách chci nahrát?

říkají, to jsou mé vzorové stránky

templates/
   layout.html
   section1/
     subsection/index.html
     subsection2/index.html
   section2
     subsection/index.html
       childofsubsection/index.html

Já bych rád předpokládat, jestli jsem šel do example.com/section1/subsection/ by vědět, hledat jeho příslušnou stránku, aniž by ji výslovně uvádí. Dokumentace http://flask.pocoo.org/docs/blueprints/ dostane velmi blízko k vysvětlení, ale já jsem pořád trochu ztracený.

from flask import Flask
from yourapplication.simple_page import simple_page

app = Flask(__name__)
app.register_blueprint(simple_page)

Také, nevíte, kde to mělo jít? to vypadá, jako by to jít do application.py, ale žádá, aby importovat z „yourapplication“

Velmi nové baňky a ne python expert jeden. Opravdu stačí jen trochu ohlupování :)

Položena 14/08/2011 v 01:08
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
11

Pokud byste chtěli vidět příklad Blueprintpoužití, můžete se podívat na tuto odpověď .

O „šablona automatické najít“ část vaší otázky: jako dokumentaci vysvětluje plány umožňuje určit složku, do které se bude řešit statické soubory a / nebo šablony pro tento způsob nemáte zadat úplnou cestu k soubor šablony ve své render_template()výzvě, ale pouze název souboru.

Pokud byste chtěli svůj názor na „magicky“ vědět, který soubor by měly vybrat, budete muset udělat trochu hack. Řešení, například, může být použít dekoratér na svém názoru, že by dělal to vybrat soubor šablony na základě názvu funkce, takový malíř bude vypadat takto:

from functools import wraps
from flask import render_template

def autorender(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        context = func(*args, **kwargs)
        return render_template('%s.html' % func.func_name, **context)
    return wrapper

Pak by prostě muset vrátit kontext podle vašeho názoru jako dict (nebo prázdný dict pokud neexistuje kontext):

@my_blueprint.route('/')
@autorender
def index():
    return {'name': 'John'} # or whatever your context is

A to by automaticky vybrat šablonu s názvem index.html.

Odpovězeno 14/08/2011 v 11:56
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more