Python “怎么做?”;返回渲染(请求“路径/路径”);在Django工作?
请解释“return render(request,'path/path')”如何在django中的任何特定views.py文件中一步一步地工作 MYcode:(views.py) 代码:(registration.html)Python “怎么做?”;返回渲染(请求“路径/路径”);在Django工作?,python,html,django,django-templates,Python,Html,Django,Django Templates,请解释“return render(request,'path/path')”如何在django中的任何特定views.py文件中一步一步地工作 MYcode:(views.py) 代码:(registration.html) {%extensed“basic\u app/basic.html”%} {%load staticfiles%} {%block body_block%} {%如果已注册%} 谢谢您的注册! {%else%} 在这里注册! {{user_form.as_p} {{pro
{%extensed“basic\u app/basic.html”%}
{%load staticfiles%}
{%block body_block%}
{%如果已注册%}
谢谢您的注册!
{%else%}
在这里注册!
{{user_form.as_p}
{{profile_form.as_p}
{%csrf_令牌%}
{%endif%}
{%endblock%}
还要解释:views.py中“return”语句中定义的字典是如何逐步工作的。Django web应用程序通常将处理这些步骤的代码分组到单独的文件中: URL:虽然可以通过单个函数处理来自每个URL的请求,但编写单独的视图函数来处理每个资源更易于维护。URL映射器用于根据请求URL将HTTP请求重定向到适当的视图。URL映射器还可以匹配URL中出现的字符串或数字的特定模式,并将其作为数据传递给视图函数 视图:视图是一个请求处理函数,它接收HTTP请求并返回HTTP响应。视图通过模型访问满足请求所需的数据,并将响应的格式委托给模板 模型:模型是定义应用程序数据结构并提供管理(添加、修改、删除)和查询数据库记录机制的Python对象 模板:模板是一种文本文件,用于定义文件(如HTML页面)的结构或布局,并使用占位符表示实际内容。视图可以使用HTML模板动态创建HTML页面,用模型中的数据填充该页面。模板可用于定义任何类型文件的结构;它不必是HTML 以下是
return render()
工作流程:
此函数使用render()函数创建发送回浏览器的HttpResponse。这个功能是一个快捷方式;它通过组合指定的HTML模板和一些要插入模板中的数据(在名为“context”的变量中提供)来创建HTML文件。在下一节中,我们将展示模板如何将数据插入其中以创建HTML
有关更多详细信息,请参见。请阅读:
from django.shortcuts import render
from basic_app.forms import UserForm,UserProfileInfoForm
from . import forms
def index(request):
return render(request,'basic_app/index.html')
def register(request):
registered=False
if request.method=="POST":
profile_form=UserProfileInfoForm(data=request.POST)
user_form=UserForm(data=request.POST)
if profile_form.is_valid() and user_form.is_valid():
user=user_form.save()
user.set_password(user.password)
user.save()
profile=profile_form.save(commit=False)
profile.user=user
if 'profile_pic' in request.FILES:
profile.profile_pic=request.FILES['profile_pic']
profile.save()
registered=True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request,'basic_app/registration.html',
{'user_form':user_form,
'profile_form':profile_form,
'registered':registered})
{% extends "basic_app/basic.html" %}
{% load staticfiles %}
{% block body_block %}
<div class="jumbotron">
{% if registered %}
<h1>Thank you for registering!</h1>
{% else %}
<h1>Register Here!</h1>
<form enctype="multipart/form-data" method="post">
{{user_form.as_p}}
{{profile_form.as_p}}
{% csrf_token %}
<input type="submit" name="" value="Register">
</form>
{% endif %}
</div>
{% endblock %}
return render(request,'basic_app/registration.html',
{'user_form':user_form,
'profile_form':profile_form,
'registered':registered})