📜  在 html 中访问 django 对象(1)

📅  最后修改于: 2023-12-03 15:37:20.930000             🧑  作者: Mango

在 HTML 中访问 Django 对象

Django 是一个 Python Web 框架,它使用模型-视图-控制器(MVC)的设计模式来构建 Web 应用程序。它还提供了一种称为模板语言(Template Language)的方法,让你在 HTML 中访问 Django 对象。

步骤
  1. 创建一个 Django 应用程序, 命名为 myapp

  2. 在 myapp 目录下创建一个模型模块,例如 models.py,并定义一个模型类,例如:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    pub_date = models.DateField()
  1. 在 myapp 目录中创建一个视图模块,例如 views.py,并添加一个视图函数,它将检索出所有书籍并将它们传递给模板:
from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()
    return render(request, 'myapp/book_list.html', {'books': books})
  1. 创建一个模板,例如 book_list.html,并使用模板语言来访问传递给模板的对象:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Book Collection</title>
</head>
<body>
    <h1>My Book Collection</h1>
    <ul>
        {% for book in books %}
            <li>{{ book.title }} by {{ book.author }}</li>
        {% endfor %}
    </ul>
</body>
</html>

此模板代码将显示 Book 模型中的所有书籍的标题和作者。 {% for book in books %} 开始一个 for 循环,遍历 books 变量中的所有 Book 对象。在循环的每个迭代中,titleauthor 属性将使用双花括号({{ property }})来添加到列表项中,其中 property 是模型属性的名称。

  1. 创建一个 URL 控制器,例如 urls.py,并将其连接到视图:
from django.urls import path
from . import views

urlpatterns = [
    path('books/', views.book_list, name='book_list'),
]
  1. 最后,在应用程序中的 urls.py 中包含完整的 URL 控制器:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls')),
]

现在你可以在浏览器中访问 http://localhost:8000/myapp/books/ URL,并查看你的书籍列表。对于每个书籍,列表项将由书籍的标题和作者组成。

结论

在 HTML 中访问 Django 对象非常容易,通过使用 Django 模板语言,你可以轻松地将数据库对象呈现为 Web 页面的一部分。