我正在尝试创建一个用于学习目的的Web应用程序。我已经使用了Flask Web框架。我的应用程序树如下所示。
├───admin
│ ├───static
│ │ ├───css
│ │ ├───fonts
│ │ ├───img
│ │ │ └───faces
│ │ └───js
│ │ ├───core
│ │ └───plugins
│ └───templates
│ └───admin
│ └───includes
├───api
├───hotels
│ ├───templates
│ │ └───hotels
│ └───theme-albert
│ ├───assets
│ ├───css
│ ├───fonts
│ ├───img
│ │ └───faces
│ └───js
├───site
│ └───templates
│ └───site
└───static
├───css
├───fonts
├───img
│ └───faces
└───js
└───core
酒店是下面注册的子域。
# registering blueprint routes
app.register_blueprint(site.routes.mod)
app.register_blueprint(api.routes.mod, url_prefix='/api')
app.register_blueprint(admin.routes.mod, url_prefix='/admin')
app.register_blueprint(hotels.routes.mod,subdomain='<hotelname>')
我正在尝试将路线创建为
from flask import Blueprint,render_template
mod=Blueprint('hotels', __name__ , template_folder='templates',static_folder='theme-albert'
)
@mod.route('/')
def index(hotelname):
return render_template('hotels/index.html', hotelname=hotelname)
现在,我希望这个问题在视图index.html
中得到解决
<script src="{{ url_for('.theme-albert', filename='js/jquery-1.11.2.min.js') }}"></script>
但是显然,我得到一个错误
BuildError:无法为终结点“ hotels.theme-albert”建立网址 值['filename']。您忘了指定值['hotelname']吗?
问题1 :我是否需要以循环形式传递酒店名称为
@mod.route('/')
def index(hotelname):
return render_template('hotels/index2.html', hotelname=hotelname)
index.html
<script src="{{ url_for('.theme-albert',hotelname='{{ hotelname }}' , filename='js/functions.js') }}"></script>
我认为会有更好的方法!
问题2 :假设我需要为酒店子域蓝图实现多个主题选择?有人可以建议我读一本书吗?