Django请求和响应

1. 请求

  1. 获取请求方式 GET/POSTprint(requset.method)
  2. 通过url传递值 /something?n1=1234&n2=456print(requset.GET)
  3. 通过请求体获取数据print(requset.POST)

    【注】:获取的请求方式和传递的值和数据,可在终端后台看见

2. 响应

  1. HttpResponse("返回内容") 将字符串返回给请求者
    return HttpResponse("返回内容")
  2. 读取html中的内容 + 渲染(替换) -> 字符串,返回给用户浏览器
    return render(requset,'something.html', {"title":"在吗?"})
  3. 让浏览器重定向到其他页面return redirect("www.baidu.com")
    【注】:重定向并不是网站获取其他网页再交付浏览器;而是网站返回其他网页的值给浏览器,让浏览器自行访问其他网页。

3. 案例

  1. 配置urls与views视图函数

  2. 视图函数中加入判断

    login视图函数
    def login(request):
        if request.method == "GET":
            return render(request, "login.html")
        else:
            # 如果是POST请求,获取用户提交的数据
            # print(request.POST)
            username = request.POST.get("user")
            password = request.POST.get("pwd")
    
            if username == 'root' and password == "123":
                # return HttpResponse("登录成功")
                return redirect("https://www.baidu.com/");
            else:
                # return HttpResponse("登录失败")
                return render(request, "login.html", {"error_msg":"用户名或密码错误!"})
    
  3. 编写login网页模板

    网页模板
    <h1>用户登录</h1>
        <form method="post" action="/login/">
    
            {% csrf_token %}
    
            <input type="text" name="user" placeholder="用户名">
            <input type="password" name="pwd" placeholder="密码">
            <input type="submit" value="提交">
            <span style="color:red;">{{ error_msg }}</span>
        </form>
    

    【注】:表单中需加入{% csrf_token %},否则会报403。

  4. 输入用户名和密码之后,点击提交,页面跳转,显示登录成功,后台终端将显示该用户名和密码。

    【注】:['n32CliuoMhXYmhWutNtW7TrfY3NOCBeTzxJCyLJcDhqiXuX7oU23y8kzUBlcTSK3']为Django提供的加密。

  5. 在视图函数判断中加入一个字典,该字典值为“用户名或密码错误!”,仅在用户名或者密码输入错误时显示,并在网页模版中调用该字典的键。

posted @   Coder-Yun  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示