اذهب إلى المحتوى
  • 0

كيفية إستخدام ملف html من مجلد خارجي كقالب template في فلاسك Flask؟

Mohssen A Mohssen

السؤال

لدي مشروع فلاسك Flask وقمت بتقسيم المشروع إلى مجلدين Backend و Frontend ، حيث يحتوي المجلد backend على ملفات Python الخاصة بفلاسك Flask، والمجلد Frontend يحتوي على ملفات القوالب:

backend
  |_ app.py
frontend
  |_ view_notifications.html

الآن أحاول أن أقوم بإستخدام الملف view_notifications.html من داخل أحد المسارات بالشكل التالي:

@app.route('/notifications')
def notifications():
    return render_template("frontend/view_notifications.html")

لكن الكود السابق لم يعمل، حاولت أن أستخدم نقتطين .. للخروج من المجلد ولكن لم يعمل شيء، وفي كل مرة يظهر خطأ TemplateNotFound

كيف أقوم بحل هذه المشكلة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

لا تحتاج إلي كتابة المسار داخل render_template فقط يمكنك تغيير المسار الرئيسي من خلال template_folder ,

تابع التالي


 

#main.py
from flask import (Flask, render_template)

app = Flask(__name__, template_folder='../frontend/template')


@app.route('/notifications')
def notifications():
    return render_template("view_notifications.html")

  
  
#إذا كان لديك مسارات فرعية فيمكنك إستخدامها بالشكل التالي

@app.route('/page')
def pages():
    return render_template("post/page.html")

  

وإذا كنت تشك في مسارك يمكنك كتابة المسار كاملاً بالشكل التالي

app = Flask(__name__, template_folder=r'C:\Users\mohamed\project\frontend\template')

لاتنسي حرف r مهم إذا كنت تستخدم نظام التشغيل ويندوز ومساره الكامل والذي يبدأ ب C:\Users أو D:\x وما شابه

وإلا سيواجهك خطأ كهذا

    app = Flask(__name__, template_folder='C:\Users\mohamed\project\frontend\template')
                                         ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

موفق

تم التعديل في بواسطة Mohammed_Emad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عادة Flask يبحث عن القوالب ( templates) في مستوى الجذر لتطبيقك  في مجلد يسمى templates. لتغيير هذا المجلد أو إختيار مجلد آخر ما عليك فعله الا استعمال template_folder على الشكل التالي:

app = Flask(__name__, template_folder='frontend')

@app.route('/notifications')
def notifications():
    return render_template("view_notifications.html")#هنا عليك فقط وضع اسم القالب

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...