Last update on .

上篇文章介绍了Django 4.0主要的新功能,今天主要抽空验证一下其中一个新feature,Form中template_name的使用。

本文分3部分:

第1部分记录一下使用Django 4.0创建一个hello world项目的步骤;

第2部分添加一个form并展示;

第3部分验证一下template_name功能。

 

第一步 建立环境(使用Django4.0创建一个hello world项目)

1.  Python 3.8.9 中创建一个虚拟环境:

python -mvenv Django40

2.  下载安装Django 4.0.2:

pip install django

3.  创建一个新的project:

django-admin startproject django40

4.  进入django40文件夹后创建home app:

python manage.py startapp home

5.  Setting中加入home

INSTALLED_APPS = [
    'home.apps.HomeConfig',
]

6.  Django 4.0的url中定义好home的path

path('home',include('home.urls')),

7.  Home中的url.py

from django.urls 
import pathfrom . 
import viewsapp_name="home"
urlpatterns = [
    path('', views.index, name='index'),
    ]

8.  Home app中的view

  def index(request):    context = {}    return render(request,'home/index.html', context)

9.  Template,在\home\templates\home文件夹中添加index.html,内容:

<p>hello world</p>

在控制台中python manage.py runserver

在浏览器中打开http://127.0.0.1:8000/home,看到hello world。准备工作完成了。

 

第二步 加入MyForm

1.  在home的文件夹内添加forms.py

from django import forms class MyForm(forms.Form):    message = forms.CharField(label='Message',max_length=100)    name = forms.CharField(label='Name',max_length=50)

2.  在views.py中

def index(request):    form_obj = MyForm()    context = {        'form':form_obj,    }    return render(request, 'home/index.html',context)

3.  在home的template文件夹index.html中

<form action="" method="post">  {{form}}  <inputtype="submit" value="OK"></form>

  

  

  

  

  

第三步 使用验证template_name

1.  在home的template文件夹中加入form_custom.html文件,内容为:

{% for field in form %}
    <div>
        {{ field.errors }}
        {{ field.label_tag }} {{ field }}
    </div>
{% endfor %}

2.  打开home的forms.py,加入template_name

from django import forms

class MyForm(forms.Form):
    template_name ="home/form_custom.html"
      message = forms.CharField(label='Message',max_length=100)
        name = forms.CharField(label='Name', max_length=50)

浏览器中再次输入http://127.0.0.1:8000/home,从效果上可以看出来,我们已经使用自定义的模板文件了

  

  

  

  

  

3.  如果form不使用template_name属性,像这样在index模板中直接引用自定义的模板文件也可以。

<form action="" method="post">
    {%include "home/form_custom.html" %}
    <input type="submit" value="OK">
</form>

 

(完)

评论

No comments yet.

Please log in by using LinkedIn Weibo to leave a comment.