📜  Django – 创建应用程序 |套装 – 2(1)

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

Django – 创建应用程序 |套装 – 2

前面的文章中,我们学习了如何在Django中创建应用程序,以及如何定义模型(Model),URL和视图(View)。在本文中,我们将继续构建该应用程序,添加更多的功能和视图。

创建新页面

在我们的应用程序中,我们将创建一个新页面,用于创建新的博客文章。我们需要定义一个新的URL,视图和模板。

定义URL

打开blog/urls.py文件,并向其中添加以下代码:

from django.urls import path
from . import views

urlpatterns = [
    # ... 省略
    path('article/new/', views.create_article, name='create_article'),
]

这将定义一个名为create_article的视图。我们需要在后面创建此视图。

定义视图

打开blog/views.py文件并添加以下代码:

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from .forms import ArticleForm

@login_required(login_url='/login/')
def create_article(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = ArticleForm()
    return render(request, 'blog/create_article.html', {'form': form})

此视图将接收一个名为'create_article'的GET请求。如果请求方法是POST,则将创建一个新的文章。我们还需要指定表单(form)字段。

定义模板

为该视图创建一个名为'create_article.html'的模板。在blog/templates/blog/下创建该文件,并添加以下代码:

{% extends 'blog/base.html' %}

{% block content %}
  <h2>Create Article</h2>
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit" class="btn btn-primary">Create</button>
  </form>
{% endblock %}

我们在此处定义了一个表单,并使用form.as_p渲染每个表单字段。

小结

在本文中,我们创建了一个新页面,用于创建新的博客文章。我们定义了新的URL,视图和模板,并介绍了表单字段和form.as_p。下一篇文章,我们将添加评论功能。