做一个登录后的跳转页面
这个home页面,我们用来管理用户的信息,我们不能写死在页面上,需要在后台生成数据,这个怎么做呢?
1、定义一个home页面 home.html
2、设置home 的urls
3、编写后台view.py代码
home页面
我们先写一个home.html的页面,在模板中编写,templates中创建home.html
<body style="margin: 0 auto;"> <div style="height: 48px;background: #dddddd"></div> <div> <form action="/home/" method="post"> <input type="text" name="username" placeholder="用户名"/> <input type="text" name="email" placeholder="邮箱"/> <input type="text" name="gender" placeholder="性别"/> <input type="submit" value="添加"> </form> </div> <div> <table> {% for row in user_list %} <tr> <td>{{ row.username }}</td> <td>{{ row.email }}</td> <td>{{ row.gender }}</td> </tr> {% endfor %} </table> </div> </body>
注意:上面用的是模板语言,且我们需要添加内容提交到后台。
设置home 的urls
说明:我们需要设置urls,当用户访问的时候,跳转到我们的后台处理
编写后台view.py代码
USER_LIST中有一条基础数据,for循环再自动添加5条数据 ,在模板中需要用for循环读取
USER_LIST = [ {'username': "dada", 'email': "asdf@123.456", "gender": "girl"}, ] for index in range(5): temp = {'username':"user" + str(index),'email':"abc"+ str(index)+"@123.com","gender":"man"} USER_LIST.append(temp) # home页面处理的请求 def home(request): return render(request, "home.html", {"user_list": USER_LIST})
模板语言的for循环
django的模板中是支持for循环的,所以当我们需要有很多数据的时候,是需要用到for循环的,语法如下:
{% for 元素名 in 列表名 %}
{{ 元素值}}
{% endfor %}
#如果是字典的话,是:{{元素.key值}},比如:{{row.username}},不是{{row["username"]}}
运行,登录成功跳转,读取所有的用户名
view.py扩展
处理post请求
# home页面处理的请求 def home(request): if request.method == "POST": user = request.POST.get("username") email = request.POST.get("email") gender = request.POST.get("gender") temp = {'username': user, 'email': email, "gender": gender} USER_LIST.append(temp) return render(request, "home.html", {"user_list": USER_LIST})
页面上添加一条数据,每次提交都会新加一条,因为已经把这个值加到了全局变量USER_LIST里
但是,一旦重启,全局变量会被清空。