Flask蓝图应用程序中子域的静态文件夹

时间:2018-12-27 17:06:39

标签: python flask web-applications

我正在尝试创建一个用于学习目的的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 :假设我需要为酒店子域蓝图实现多个主题选择?有人可以建议我读一本书吗?

0 个答案:

没有答案