用Django写一个登陆页面
时间: 2023-05-31 13:04:58 浏览: 113
以下是一个使用Django编写的基本登陆页面的示例:
在urls.py文件中添加以下代码:
```
from django.urls import path
from . import views
urlpatterns = [
path('login/', views.login, name='login'),
]
```
在views.py文件中添加以下代码:
```
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def login(request):
if request.user.is_authenticated:
return redirect('home')
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 redirect('home')
else:
error_message = "Invalid username or password"
return render(request, 'login.html', {'error_message': error_message})
return render(request, 'login.html')
```
在templates文件夹中创建一个名为login.html的HTML文件,添加以下代码:
```
{% extends 'base.html' %}
{% block content %}
<h2>Login</h2>
{% if error_message %}
<p><strong>{{ error_message }}</strong></p>
{% endif %}
<form method="post">
{% csrf_token %}
<label for="username">Username:</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">Password:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
{% endblock %}
```
在base.html中添加以下代码:
```
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
```
现在访问/login/页面,你就能看到一个基本的登陆页面了。
阅读全文