如何在index.html上创建一个非常简单的超链接?

时间:2015-12-01 16:49:50

标签: python html flask

这是我的结构:

├── main.py
├── static
│   ├── css
│   │   └── main.css
│   ├── img
│   │   └── main_bkg.jpg
│   └── js
└── templates
    ├── myApp
    │   └── myApp.main.html
    └── index.html

我只想在index.html上创建一个链接到myApp.main.html的非常简单的超链接。

我的main.py看起来像是:

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

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/<module>/')
def myApp(module):
    return render_template('{0}/{0}.main.html'.format(module)) 

@app.route('/user/<username>')
def show_user_profile(username):
    return 'User %s' % username

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

在我的index.html中: 我试过了

<a href="{{ url_for('myApp') }}"><button>myApp</button></a>

烧瓶提示BuildError BuildError: ('myApp', {}, None)

如果我在myApp.main.html上尝试以下操作,那么它会提供一个返回主页的有效链接:

<a href="{{ url_for('index') }}"><button>Home</button></a>

我在这里想念的是什么?

2 个答案:

答案 0 :(得分:1)

您的myApp规则需要module个参数。您没有将其传递给url_for,因此它引发了错误,因为它需要该信息来构建网址。

url_for('myApp', module='myModule')

答案 1 :(得分:0)

我使用了以下结构: ├── app.py ├── static └── templates ├── Homep.html └── index.html 我使用了HTML:

<a href="{{ url_for('index') }}"><button>Home</button></a>

对我来说很好。