python - 使用 Django 创建登录视图页面?
问题描述
我正在尝试创建一个登录视图页面,以在没有混合或装饰器的情况下完成对用户进行身份验证和登录的过程。我有以下代码:
urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
path('accounts/login/', views.login_view, name="login"),
views.py:
def login_view(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
# login(request, user)
return HttpResponse("logged in!")
else:
return HttpResponse("invalid credentials")
return render(request, 'registration/login.html')
templates/registration/login.html:
{% block content %}
<h1>Log in!</h1>
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<table>
<tr>
<td>{{ form.username.label_tag }}</td>
<td>{{ form.username }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
</table>
<input type="submit" value="login">
</form>
{% endblock %}
当我尝试访问该accounts/login
页面时,我的表格没有出现。我在这里做错了什么?
解决方案
您没有在 render() 函数中将任何形式传递给上下文,它应该类似于:
...
return render(request, "registration/login.html", {"form": YouLoginForm()})
推荐阅读
- graphql - 在 GraphQL 中对 Join 表进行批量更新的最佳方法是什么?
- reactjs - 如何加快组件和类的 npm 库的 webpack 重建
- r - 在 Windows [rstudio] [r] [windows] 中使用 R(或特别是 R Studio)在指定文件夹中打开文件资源管理器
- c - 为什么在 http 服务器中需要异步?
- dns - 无法连接到在 AWS lightail windows server 2019 上设置的域控制器
- makefile - 配置make在不同目录下为不同系统构建对象
- python - 如何在 Python 上的 3d 数组上应用高斯分布
- php - 如何从数据库中加载 user_email 并将其发布到 Php wp_mail() 函数的 $to 中
- javascript - 下拉列表填充相同的值
- mysql - 在同一台 MySQL 服务器上互连多个数据库