问题遇到的现象和发生背景
Django初学,用Django的表单控件,做一个用户登录功能;
但是代码写完运行后,表单在前端不显示。
问题相关代码,请勿粘贴截图
1:urls.py 文件
from django.urls import path
from app01 import views
urlpatterns = {
path('login/', views.login)
}
2:views.py 文件
from django.shortcuts import render, HttpResponse
from app01.forms import LoginForm
def login_django_version(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
return HttpResponse("登录成功")
else:
form = LoginForm()
print(form)
return render(request, 'login.html', {'form': form})
3:form.py 文件
from django import forms
class LoginForm(forms.Form):
user = forms.CharField(label='用户')
password = forms.CharField(label='密码')
4:login.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<h1> 使用Django来做表单</h1>
<form action="/login/" method="post" >
{% csrf_token %}
{{ form }}
<input type="submit" value="summit">
</form>
</body>
</html>
运行结果及报错内容
前端运行结果:
无表单显示
网页代码结果:
无表单代码
控制台:
"GET /login/ HTTP/1.1" 200 401
我的解答思路和尝试过的方法
检查了N多次,语法错误 逻辑错误 都没有发现
我想要达到的结果
在网页中,显示表单组件,输入用户名和密码,提交后,在DJango中可以看到数据,并且网页返回登录成功。
当然这里还没有作密码验证,密码验证是post请求。现在的问题是get请求,都不显示表单,还没到提交数据那一步。