整体思路
- templates 包括:login.html、index.html
- static—— 包括:css文件,js文件
html文件
{#login页面文件#}
----------------------------------------
<body>
<form action="/login" method="post">
<label for="log_name">请输入用户名:</label>
<input id="log_name" name="user" type="text" placeholder="请输入用户名"><br/>
<label for="log_pwd">请输入密码:</label>
<input id="log_pwd" name="pwd" type="password" placeholder="请输入密码"><span style="color:red;">{{ error_msg }}</span><br/>
<input type="submit" value="提交">
</form>
</body>
{#index页面文件#}
----------------------------------------
<body>
<div class="header">
后台管理系统
</div>
<div>
<form action="/home" method="post">
**{#此处进行内容的post#}**
<input type="text" placeholder="用户名" name="home_username">
<input type="text" placeholder="年龄" name="home_age">
<input type="text" placeholder="性别" name="home_gender">
<input type="submit" value="提交">
</form>
<table>
**{#在django的模板语言中,以{%%}来进行for循环,且需要收尾#}**
{% for row in user_list %}
<tr>
**{#在django中可将view中的内容以{{}}的形式对html进行传递#}**
**{#而对其字典的取值可以对象形式进行取值#}**
<td>{{ row.username }}</td>
<td>{{ row.age }}</td>
<td>{{ row.gender }}</td>
</tr>
{% endfor %}
</table>
</div>
</body>
url文件
from django.contrib import admin
from django.urls import path
from cmdb import views
urlpatterns = [
path('admin/', admin.site.urls),
path('home', views.home),
path('login', views.login),
**{#在url里path的第一个取值两边都不加/,在html中只加前面的,不然会导致runtime报错#}**
]
view文件
from django.shortcuts import render
# Create your views here.
from django.shortcuts import HttpResponse
from django.shortcuts import render, redirect
def login(request):
error_msg = ''
if request.method == 'POST':
user = request.POST.get('user', None)
pwd = request.POST.get('pwd', None)
if user == 'root' and pwd == '123':
return redirect('/home')
else:
error_msg = '用户名/密码错误!!!'
return render(request, 'login.html', {'error_msg': error_msg})
user_list = [
{'username': 'alex', 'age': '21', 'gender': 'M'},
]
# for i in range(20):
# temp = {'username': 'alex' + str(i), 'age': '21' + str(i), 'gender': 'M'}
# user_list.append(temp)
def home(request):
if request.method == 'POST':
u = request.POST.get('home_username')
a = request.POST.get('home_age')
g = request.POST.get('home_gender')
temp = {'username': u, 'age': a, 'gender': g}
user_list.append(temp)
return render(request, 'home.html',{'user_list':user_list})
django(CBV模式)
进行前后端数据传递(get/post):http://blog.youkuaiyun.com/qq471011042/article/details/79347062