gpt4 book ai didi

flask - 如何将模板导入到Flask中templates文件夹的子目录中?

转载 作者:行者123 更新时间:2023-12-03 08:55:19 26 4
gpt4 key购买 nike

目前我有一个基于flask-restful的API项目,带有使用OpenAPI(Swagger)创建的文档页面。我正在尝试创建一个登录页面,根据我的结构jinja2找不到模板的路径。

在登录脚本中,我尝试在 render_template() 函数中传递 .html 文件的完整路径,但没有找到该文件。就像在 app=Flask(__name__) 中添加参数 template_folder = path/to/file 一样,我没有成功。

我的结构:

├── app
│   ├── __init__.py
│   ├── auth
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── login.py
│   ├── common
│   │   ├── __init__.py
│   │   ├── jwt.py
│   │   ├── request.py
│   │   └── utils.py
│   ├── models
│   │   ├── __init__.py
│   │   ├── core.py
│   │   └── db_app_2.py
│   ├── routes
│   │   ├── __init__.py
│   │   ├── resources.py
│   └── templates
│   ├── docs
│   │   ├── swagger.json
│   │   └── swagger.yaml
│   └── pages
│   ├── base.html
│   ├── login.html
│   └── signup.html
├── app.db
├── config.py
├── main.py
├── migrations
├── requeriments
└── tests

登录.py

# -*- coding: utf-8 -*-

from flask import Blueprint, render_template, redirect, url_for
from app.models.core import db

auth = Blueprint('auth', __name__)


@auth.route('/login')
def login():
return render_template('login.html')


@auth.route('/signup')
def signup():
return render_template('signup.html')

__init__.py(主项目)

from flask import Blueprint, Flask
from flask_login import LoginManager
from flask_migrate import Migrate
from flask_restful import Api

from config import config

from .models.core import db
from .routes.resources import TwoThings


def create_app(config_name):

app = Flask(__name__, template_folder="/templates/pages")

app.config.from_object(config[config_name])

'''Fixed path for routes the api'''
path_prefix = '/api/v1'

api_bp = Blueprint(path_prefix, __name__)
api = Api(api_bp)

from app.auth.login import auth as auth_blueprint
app.register_blueprint(auth_blueprint, url_prefix=path_prefix)

api.add_resource(Reset, f'{path_prefix}/two_things')
app.register_blueprint(api_bp)

db.init_app(app)
Migrate(app, db)

return app

我需要创建一个登录页面,以便浏览器可以访问,并且登录后重定向到文档端点。

最佳答案

尝试:

return render_template('pages/login.html')

在您的login.py中。

关于flask - 如何将模板导入到Flask中templates文件夹的子目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909740/

26 4 0