使用Django编写一个登录接口
时间: 2024-01-31 22:02:04 浏览: 22
以下是一个简单的Django登录接口的示例:
1. 创建一个Django项目和应用程序:
```
$ django-admin startproject myproject
$ cd myproject
$ python manage.py startapp auth
```
2. 在`auth/views.py`中编写登录视图:
```python
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.contrib import messages
def login_view(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
messages.success(request, 'Logged in successfully')
return redirect('home')
else:
messages.error(request, 'Invalid username or password')
return render(request, 'login.html')
```
3. 在`myproject/urls.py`中添加路由:
```python
from django.urls import path
from auth.views import login_view
urlpatterns = [
path('login/', login_view, name='login'),
]
```
4. 在`auth/templates/login.html`中创建登录表单:
```html
{% extends 'base.html' %}
{% block content %}
<h2>Login</h2>
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
{% endfor %}
{% endif %}
<form method="post">
{% csrf_token %}
<div class="form-group">
<label for="username">Username:</label>
<input type="text" class="form-control" id="username" name="username">
</div>
<div class="form-group">
<label for="password">Password:</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
{% endblock %}
```
5. 运行Django服务并访问登录页面:
```
$ python manage.py runserver
```
在浏览器中访问`http://localhost:8000/login/`即可看到登录页面。输入正确的用户名和密码即可登录。如果用户名或密码不正确,则会显示错误消息。登录成功后,用户将被重定向到主页(在这个例子中是`home`路由)。