python flask framework:如何执行这个方法来生成一个htmlfi

2024-04-26 12:06:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我正在从本教程学习flask框架:
http://flask.pocoo.org/docs/0.10/tutorial/views/#tutorial-views
这是我的代码:

import sqlite3
from flask import Flask,request,session,g,redirect,url_for,abort,render_template,flash
from contextlib import closing

DATABASE= './flaskr.db'
DEBUG= True
SECRET_KEY = '123456789'
USERNAME= 'admin'
PASSWORD='default'

app=Flask(__name__)
app.config.from_object(__name__)

def connect_db():
    return sqlite3.connect(app.config['DATABASE'])

def init_db():
    with closing(connect_db()) as db:
        with app.open_resource('schema.sql', mode='r') as f:
            db.cursor().executescript(f.read())
        db.commit()

@app.before_request
def before_request():
    g.db = connect_db()

@app.teardown_request
def teardown_request(exception):
    db = getattr(g, 'db', None)
    if db is not None:
        db.close()

@app.route('/')
def show_entries():
    cur = g.db.execute('select title, text from entries order by id desc')
    entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()]
    return render_template('show_entries.html', entries=entries)

print(dir(app.route))
if __name__ == '__main__':
    """I want to execute show_entries() here"""

我想执行show\u entries()方法,使html文件如教程所说,但我不知道如何。你知道吗


Tags: namefromimportappflaskdbrequestdef
3条回答

首先,将此代码添加到代码的最后一部分:

if __name__ == '__main__':
    """I want to execute show_entries() here"""
    app.run(debug=True)

然后从shell运行应用程序

python flaskr.py

然后转到浏览器并打开http://localhost:5000/

打开此路由(“/”)时,将调用此路由的相关视图功能(显示\项)。你知道吗

例如,您可以使用其他路由和视图功能

@app.route('/myname')
def show_my_name():
    return "My name is Cold_Fire"

您可以通过转到http://localhost:5000/myname来运行这个视图函数

你误解了烧瓶在做什么。当您在浏览器中转到http://localhost:5000/时,将执行方法show_entries,并使用render_template生成的HTML内容进行响应。您可能需要重新阅读烧瓶quickstart。你知道吗

试试下面的片段。你知道吗

...
if __name__ == '__main__':
    """I want to execute show_entries() here"""
    import webbrowser
    app.run(debug=True)
    webbrowser.open("http://localhost:5000/") # or just open your browser and go to the url listed here

相关问题 更多 >