【发布时间】:2022-01-22 13:27:32
【问题描述】:
我是 Django 新手,我正在尝试创建一个简单的 Web 应用程序。我创建了一个登录表单并添加了一个用于注册新用户的超链接。不幸的是,我收到以下错误。 模块 'django.http.request' 没有属性 'POST'
在下面你会找到 view.py 代码:
from django.shortcuts import render
from django.http import HttpResponse, request
from django.db import connection
from django.contrib.auth.decorators import login_required
import pyodbc
def index(request):
if 'Login' in request.POST:
rows = []
username = request.POST.get('username')
if username.strip() != '':
rows = getLogin(username)
if len(rows) > 0:
return render(request, 'login/welcome.html')
else:
return render (request, 'login/index.html')
else:
return render (request, 'login/index.html')
else:
return render (request, 'login/index.html')
def newUser(requset):
if 'NewUser' in request.POST:
return render(request,'login/newuser.html')
def getLogin(UserName=''):
command = 'EXEC GetLogin\'' + UserName + '\''
cursor = connection.cursor()
cursor.execute(command)
rows = []
while True:
row = cursor.fetchone()
if not row:
break
userName = row[0]
password = row[1]
name = row[2]
email = row[3]
rows.append({'userName': userName, 'password': password, 'name': name, 'email': email})
cursor.close()
return rows
@login_required(login_url='/')
def readLogin(request):
if request.user.is_authenticated:
rows = getLogin()
return render(request, 'login/loginsdata.html', {'rows': rows})
else:
return HttpResponse('You are not authenticated</br>')
这里是登录应用的urls.py代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('logindata/', views.readLogin, name='logindata'),
path('newuser/', views.newUser, name='newuser'),
]
这里newuser.html代码:
{% block content %}
<form method="POST">
{% csrf_token %}
<table>
<tr>
<td>
<lable>Name </lable>
</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>
<lable>Username </lable>
</td>
<td>
<input type="text" name="username">
</td>
</tr>
<tr>
<td>
<lable>Password </lable>
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<lable>Confirm password </lable>
</td>
<td>
<input type="password" name="confirmPassword">
</td>
</tr>
<tr>
<td>
<lable>email </lable>
</td>
<td>
<input type="email" name="email">
</td>
</tr>
<tr>
<td>
<input type="submit" name="save" value="Save" colspan=2>
</td>
</tr>
</form>
{% endblock content %}
在这里你会找到 index.html 页面:
{% block content %}
<table>
<tr>
<td/>
<td/>
<td/>
</tr>
<tr>
</td>
<td>
<form method="POST">
{% csrf_token %}
<table>
<tr>
<td>
<lable>Username </lable>
</td>
<td>
<input type="text" name="username" placeholder="Username">
</td>
</tr>
<tr>
<td>
<lable>Password </lable>
</td>
<td>
<input type="password" name="password" placeholder="Password">
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" name="Login">
</td>
</tr>
<tr>
<td>
<a href="{% url 'newuser' %}" name="NewUser">Sign Up</a>
</td>
<td>
<a href="">Forget my password</a>
</td>
</tr>
</table>
</form>
</td>
</td>
</tr>
<tr>
<td/>
<td/>
<td/>
</tr>
</table>
{% endblock content %}
【问题讨论】:
-
您在
def newUser(requset):中有错字 - 'requset' 应该是 'request'。 -
我更正了它,但我收到了这个错误:视图 login.views.newUser 没有返回 HttpResponse 对象。它返回 None 。
标签: django django-views django-forms django-templates