2015-06-23 9 views
8
@app.route('/view', methods=['GET', 'POST']) 
def view_notifications(): 
    posts = get_notifications() 
    return render_template("frontend/src/view_notifications.html", posts=posts) 

Vì vậy, trong số project/backend/src/app.py có mã này. Làm cách nào để tôi tham khảo mẫu trong số project/frontend/src/view_notifications.html Tôi đã thử sử dụng .. nhưng nó vẫn cho biết đường dẫn không được tìm thấy. Có cách nào khác tôi nên làm điều này không?Cách tham chiếu mẫu html từ một thư mục khác trong bình python

[Tue Jun 23 12:56:02.597207 2015] [wsgi:error] [pid 2736:tid 140166294406912] [remote 10.0.2.2:248] TemplateNotFound: frontend/src/view_notifications.html 
[Tue Jun 23 12:56:05.508462 2015] [mpm_event:notice] [pid 2734:tid 140166614526016] AH00491: caught SIGTERM, shutting down 

Trả lời

15

Bình đang tìm kiếm trong templates/frontend/src/view_notifications.html cho tệp mẫu của bạn. Bạn cần di chuyển tệp mẫu của bạn đến vị trí đó hoặc thay đổi thư mục mẫu mặc định.

Theo tài liệu Flask, bạn có thể chỉ định thư mục khác cho mẫu của mình. Nó mặc định là templates/ trong thư mục gốc của ứng dụng của bạn:

import os 
from flask import Flask 

template_dir = os.path.abspath('../../frontend/src') 
app = Flask(__name__, template_folder=template_dir) 

UPDATE:

Sau khi thử nghiệm nó bản thân mình trên một máy tính Windows thư mục template không cần phải được đặt tên templates. Đây là mã tôi đã sử dụng:

import os 
from flask import Flask, render_template 

template_dir = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) 
template_dir = os.path.join(template_dir, 'frontend') 
template_dir = os.path.join(template_dir, 'templates') 
# hard coded absolute path for testing purposes 
working = 'C:\Python34\pro\\frontend\\templates' 
print(working == template_dir) 
app = Flask(__name__, template_folder=template_dir) 


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

if __name__ == "__main__": 
    app.run(debug=True) 

Với cấu trúc này:

|-pro 
    |- backend 
    |- app.py 
    |- frontend 
    |- templates 
     |- index.html 

Thay đổi bất kỳ trường hợp 'templates'-'src' và đổi tên thư mục mẫu để 'src' dẫn đến những lỗi tương tự OP nhận.

+0

Tôi đã thêm đối số template_folder và vẫn nói mẫu không được tìm thấy – BigBoy

+0

Nó có cho bạn biết thư mục mà nó đang tìm kiếm không? – IanAuld

+0

Đã thêm nhật ký lỗi vào op – BigBoy

Các vấn đề liên quan