2012-07-12 148 views
2

我想要使用python,html和javascript構建桌面應用程序。到目前爲止,我已經跟隨了瓶子上的內容,並有一個你好世界工作的例子。我現在應該做些什麼來使它工作? html文件如何與他們下面的python腳本「交談」?Flask,html和javascript桌面應用程序

這裏是到目前爲止我的代碼:

from flask import Flask, url_for, render_template, redirect 
app = Flask(__name__) 

@app.route('/hello/') 
@app.route('/hello/<name>') 
def hello(name=None): 
    return render_template('hello.html', name=name) 

@app.route('/') 
def index(): 
    return redirect(url_for('init')) 

@app.route('/init/') 
def init(): 
    css = url_for('static', filename='zaab.css') 
    return render_template('init.html', csse=css) 

if __name__ == '__main__': 
    app.run() 
+2

HTML文件從不與Python腳本「交談」。 Python(通過Flask)將使用Jinja2使用傳遞給render_template()的任何信息來呈現HTML文件。你應該在這裏完成教程:http://flask.pocoo.org/docs/tutorial/introduction/事情會在事後變得更有意義。 – EML 2012-07-12 16:29:41

+0

好吧,這是有道理的,但我怎麼能通過數據呢?例如。通過一些表格的數據 – 2012-07-12 16:51:20

回答

2

您可以使用HTML表單,就像你通常會在神社的模板 - 然後在您的處理程序中使用下列內容:

from flask import Flask, url_for, render_template, redirect 
from flask import request # <-- add this 

# ... snip setup code ... 

# We need to specify the methods that we accept 
@app.route("/test-post", methods=["GET","POST"]) 
def test_post(): 
    # method tells us if the user submitted the form 
    if request.method == "POST": 
     name = request.form.name 
     email = request.form.email 
    return render_template("form_page.html", name=name, email=email) 

如果你想使用GET instaed POST提交表格,你只需檢查request.args而不是request.form(有關更多信息,請參見flask.Request's documentation)。如果你打算用表格做很多事情,我建議你去看看優秀的WTForms項目和Flask-WTForms extension

+0

首先感謝你的回答,我是新的在燒瓶和忍者,所以我想知道如果我必須除了燒瓶安裝忍者 – 2012-07-13 08:49:39

+1

@MpampinosHolmens - 如果你運行'pip install Flask'(假設你已經安裝了pip並且可以在你的'PATH'上使用),那麼Flask將會和它的依賴關係一起安裝(Jinja2和Werkzeug)。 – 2012-07-13 16:16:44

+0

好的,非常感謝這就是我做的! – 2012-07-13 22:51:03