Dalam kedua -dua Flask dan Django, membuat templat HTML melibatkan menggunakan enjin templat untuk menghasilkan kandungan dinamik. Inilah cara anda melakukannya dalam setiap kerangka:
FLASK:
Flask menggunakan enjin templat Jinja2 secara lalai. Untuk menjadikan templat, anda perlu pastikan anda mempunyai fungsi render_template
yang diimport dari flask. Inilah contoh mudah:
<code class="python">from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True)</code>
Dalam contoh ini, Flask mencari fail yang bernama index.html
dalam direktori templates
projek Flask anda. Jika fail templat ditemui, ia akan diberikan dan dihantar kepada penyemak imbas pengguna.
Django:
Django menggunakan enjin templat sendiri, yang juga dibina di atas Jinja2. Untuk membuat templat di Django, anda menentukan pandangan yang menggunakan pintasan render
untuk memaparkan templat anda. Inilah contoh:
<code class="python">from django.shortcuts import render from django.http import HttpResponse def index(request): return render(request, 'index.html')</code>
Di Django, index.html
templat.html harus terletak di direktori yang dinamakan templates
dalam direktori aplikasi anda atau direktori yang dinyatakan dalam DIRS
dalam settings.py
anda.py.
Menganjurkan dan mengurus templat dengan berkesan adalah penting untuk mengekalkan struktur projek yang bersih dan berskala. Berikut adalah beberapa amalan terbaik untuk kedua -dua Flask dan Django:
FLASK:
templates
pada akar projek anda. Gunakan subdirektori untuk mengkategorikan templat dengan fungsi atau modul mereka (misalnya, templates/user
, templates/admin
).static
Flask atau perpustakaan pihak ketiga seperti aset flask untuk mengendalikan dan menyampaikan fail statik.Django:
templates
dalam aplikasi anda. Untuk projek dengan pelbagai aplikasi, gunakan DIRS
dalam settings.py
untuk memasukkan direktori templates
global di peringkat projek.base.html
dan lanjutkannya merentasi permohonan anda. Ini membantu mengekalkan UI yang konsisten dan memudahkan kemas kini.static
hendaklah berasingan daripada templates
, dan anda boleh menggunakan tag templat {% static %}
untuk menghubungkan ke fail ini.Lulus pembolehubah dari backend ke frontend menggunakan templat adalah fungsi teras dalam kedua -dua Flask dan Django.
FLASK:
Dalam flask, anda boleh lulus pembolehubah ke templat menggunakan fungsi render_template
. Inilah contoh:
<code class="python">@app.route('/user/<username>') def show_user_profile(username): # Example of fetching data from a database user = {'username': username, 'age': 30} return render_template('user_profile.html', user=user)</username></code>
Dalam user_profile.html
yang sepadan, anda boleh mengakses pemboleh ubah user
seperti ini:
<code class="html"><p>Hello, {{ user.username }}! You are {{ user.age }} years old.</p></code>
Django:
Di Django, anda lulus pembolehubah ke templat melalui kamus konteks dalam fungsi render
. Inilah contoh:
<code class="python">def user_profile(request, username): user = {'username': username, 'age': 30} return render(request, 'user_profile.html', {'user': user})</code>
Dalam template user_profile.html
, anda mengakses pembolehubah user
sama:
<code class="html"><p>Hello, {{ user.username }}! You are {{ user.age }} years old.</p></code>
Templat rendering kadang -kadang boleh membawa kepada isu -isu. Berikut adalah beberapa masalah biasa dan langkah penyelesaian masalah mereka:
Templat tidak dijumpai :
templates
untuk flask, templates
dalam aplikasi anda untuk Django). Semak semula nama fail dan pelanjutan dalam panggilan render_template
atau render
.Kesalahan sintaks dalam templat :
app.run(debug=True)
) atau django (dengan menetapkan DEBUG = True
dalam settings.py
). Mesej ralat yang disediakan akan menunjuk kepada garis tertentu yang menyebabkan isu tersebut. Semak dokumentasi Jinja2 atau Django Templat untuk membetulkan sintaks.Pembolehubah tidak dipaparkan dengan betul :
Fail statik tidak dimuatkan :
static
dalam Flask dan Django). Gunakan sintaks yang betul untuk merujuk fail -fail ini dalam templat anda ( {{ url_for('static', filename='path/to/file') }}
untuk kelalang dan {% static 'path/to/file' %}
untuk django).Dengan mengikuti langkah -langkah penyelesaian masalah ini, anda dapat menyelesaikan masalah yang paling umum yang berkaitan dengan rendering template dalam Flask dan Django.
Atas ialah kandungan terperinci Bagaimana anda membuat templat HTML dalam Flask (atau Django)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!