网页开发(二)——实现页面登录跳转

继续上一次进行网页开发


一、为网页增加登录功能

1.在urls.py增加要跳转的页面及函数

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('login/', views.login),
    path('index/', views.index),
]

2.在views中增加登录函数

提示:这里就是把用户名密码在代码写定了,只有使用root和123才可以登录,初步暂定这样,以后完善了可以在数据库中建立用户账号密码表,根据表格来进行登录判定。
(1)如果获取到网页的method为post,就设置通过submit标签获取文本框输入的账号和密码:

    if request.method == 'GET':
        return render(request, 'login.html')
           # 如果是POST请求,获取用户提交的数据
    # print(request.POST)
    username = request.POST.get("username")
    password = request.POST.get("password")

(2)判断登录的账号和密码是否正确,如果正确,跳转到主页index.html:

 if username == 'root' and password == '123':
        # return HttpResponse('登录成功')
        return render(request, 'index.html')
    # return HttpResponse('登录失败')
    return render(request, 'login.html', {'error_msg': '用户名或密码错误!'})

3.错误解决办法

Forbidden (403)
CSRF verification failed. Request aborted.
这是django自带的问题
解决办法:
在html当前中增加{% csrf_token %}

<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>

4.后续

下一步就是把自己要的网页一个一个写进去,我自己是习惯先把html放到templates下,然后在url.py写path,然后写views.py对应的函数,最后调网页的css
这里遇到一个需要注意的小细节,就是html中的herf指向的是url中path的地址,这两个必须要一一对应:

html中:
<a href="/devices/all/" target="right">
							<li>所有资产</li>
						</a>

url.py中:
 path('devices/all/', views.devices_all),

总结

以上就是今天要讲的内容,暂时没有遇到别的问题,遇到再进行记录。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可用于开发服务端应用程序。Axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。Axios支持浏览器和Node.js环境。 在Node.js中使用Axios发送HTTP请求,可以通过以下步骤实现: 1. 安装Axios 可以通过npm命令安装Axios: ``` npm install axios ``` 2. 发送HTTP请求 可以使用Axios的get、post、put、delete等方法发送HTTP请求。例如: ``` const axios = require('axios'); axios.get('http://localhost:3000/api/user') .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); ``` 3. 添加请求拦截器 可以通过Axios的interceptors属性添加请求拦截器。拦截器可以在发送请求前对请求进行处理。例如,可以在请求头中添加token等信息: ``` axios.interceptors.request.use( config => { const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, error => { return Promise.reject(error); } ); ``` 4. 添加响应拦截器 可以通过Axios的interceptors属性添加响应拦截器。拦截器可以在接收到响应后对响应进行处理。例如,可以在响应中检查是否需要登录页面: ``` axios.interceptors.response.use( response => { return response; }, error => { if (error.response.status === 401) { // 登录页面 window.location.href = '/login'; } return Promise.reject(error); } ); ``` 以上是使用Axios发送HTTP请求及添加拦截器的基本步骤。在实际应用中,还需要考虑请求的参数、响应的处理等方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值