day17-用户登录以及跳转后台管理页面和django的生命周期

一、前言

  今天我们就来实战模拟一个用户登录之后,跳转到后台管理页面的,这个是我们做系统经常做的,那这个是怎么做的呐?今天就来看看,这个是怎么搞的。

二、模板中的for循环

2.1、模板中的for循环

说明:django的模板中是支持for循环的,所以当我们需要有很多数据的时候,是需要用到for循环的,语法如下:

{% for 元素名 in 列表名 %}
      {{ 元素值}}   #如果是字典的话,是:{{元素.key值}},比如:{{row.username}},不是{{row["username"]}}
{% endfor %}

以下是view.py代码:

USER_LIST = [  #设置一个user_list的列表
    {'username':"sbh",'email':"zqg0808","gender":"girl"},
    {'username':"sgg",'email':"cy0808","gender":"boy"},
    {'username':"csg",'email':"zqgcy0808","gender":"youngboy"}
]

# for index in range(20):
#     temp = {'username':"sbh" + str(index),'email':"zqgcy0808","gender":"man"}
#     USER_LIST.append(temp)

def home(request):
    return render(request,"home.html",{"user_list":USER_LIST})  #传入一个列表

django模板home.html:

<body style="margin: 0 auto;">
    <div style="height: 48px;background: #dddddd"></div>
    <div>
        <table>
            {% for row in user_list %}    #循环列表
                <tr>
                    <td>{{ row.username }}</td>   #row.key名获取值
                    <td>{{ row.email }}</td>
                    <td>{{ row.gender }}</td>
                </tr>
            {% endfor %}  #结束for循环
        </table>
    </div>
</body>

三、用户登录、跳转后台管理页面

3.1、后台管理页面

说明:我们先写一个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>

如图:

注意:上面用的是模板语言,且我们需要添加内容提交到后台。

3.2、设置urls

说明:我们需要设置urls,当用户访问的时候,跳转到我们的后台处理

from django.contrib import admin
from django.urls import path
from cmdb import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/',views.login),
    path('home/',views.home),  #设置home
]

3.3、编写后台view.py代码

说明:我们提交的数据,需要后台做处理,然后返回到我们的home.html的页面上。

from django.shortcuts import render
from django.shortcuts import redirect
# Create your views here.

#登录之后跳转到home页面
def login(request):
    error_msg = ""
    if request.method == "POST":
        user_name = request.POST.get("username",None)
        password = request.POST.get("pwd",None)
        if user_name == "root" and password == "123":
            return redirect("/home/")
        else:
            error_msg = "用户名或者密码错误"
    return render(request,"login.html",{'error_msg':error_msg})

USER_LIST = [
    {'username':"sbh",'email':"zqg0808","gender":"girl"},
    {'username':"sgg",'email':"cy0808","gender":"boy"},
    {'username':"csg",'email':"zqgcy0808","gender":"youngboy"}
]

# for index in range(20):
#     temp = {'username':"sbh" + str(index),'email':"zqgcy0808","gender":"man"}
#     USER_LIST.append(temp)

#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})

 效果图:

四、django的生命周期

原理:

  -> URL对应关系(匹配)  -> 视图函数  -> 打开1个html文件,读取内容  -> 返回给用户

如图所示:

 

posted @ 2018-02-27 16:27  帅丶高高  阅读(609)  评论(0编辑  收藏  举报