在django框架下,写一个用户登录界面,使用css控制样式,用js控制交互
时间: 2023-05-30 11:06:55 浏览: 76
首先,在Django项目中创建一个app,命名为accounts。
1. 创建一个login.html模板文件,用于显示登录界面。
```html
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
<link rel="stylesheet" href="{% static 'accounts/style.css' %}">
</head>
<body>
<div class="container">
<h1>Login Form</h1>
<form method="post">
{% csrf_token %}
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
</div>
<script src="{% static 'accounts/script.js' %}"></script>
</body>
</html>
```
2. 创建一个style.css文件,用于控制登录界面的样式。
```css
.container {
width: 400px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
h1 {
text-align: center;
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 10px;
}
input[type="text"],
input[type="password"] {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 4px;
}
button[type="submit"] {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
float: right;
}
button[type="submit"]:hover {
background-color: #45a049;
}
```
3. 创建一个script.js文件,用于控制登录界面的交互。
```javascript
document.querySelector('form').addEventListener('submit', function (e) {
e.preventDefault(); // 阻止表单默认提交行为
var username = document.querySelector('#username').value;
var password = document.querySelector('#password').value;
// 发送POST请求
fetch('/accounts/login/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
'username': username,
'password': password
})
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert('登录成功!');
window.location.href = '/'; // 跳转到首页
} else {
alert('登录失败!');
}
})
.catch(error => {
console.error('Error:', error);
});
});
```
4. 在项目的urls.py文件中添加登录路由。
```python
from django.urls import path
from . import views
urlpatterns = [
path('login/', views.login_view, name='login'),
]
```
5. 在accounts/views.py文件中添加login_view视图函数。
```python
from django.shortcuts import render
from django.http import JsonResponse
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
# 验证用户名和密码是否正确
if username == 'admin' and password == '123456':
return JsonResponse({'success': True})
else:
return JsonResponse({'success': False})
return render(request, 'accounts/login.html')
```
现在,就可以在浏览器中访问http://localhost:8000/accounts/login/,看到一个漂亮的登录界面,并且可以输入用户名和密码进行登录。在登录时,会向服务器发送一个POST请求,验证用户名和密码是否正确,并返回一个JSON格式的响应。如果登录成功,则弹出一个提示框并跳转到首页;如果登录失败,则弹出一个失败提示框。