首页>>后端>>Python->django弹出页面跳转怎么写(2023年最新整理)

django弹出页面跳转怎么写(2023年最新整理)

时间:2023-12-25 本站 点击:0

导读:今天首席CTO笔记来给各位分享关于django弹出页面跳转怎么写的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django写的LoginView,登录成功后无法跳转回原页面,求助

You do not need to make an extra view for this, the functionality is already built in.

First each page with a login link needs to know the current path, and the easiest way is to add the request context preprosessor to settings.py (the 4 first are default), then the request object will be available in each request:

settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (

"django.core.context_processors.auth",

"django.core.context_processors.debug",

"django.core.context_processors.i18n",

"django.core.context_processors.media",

"django.core.context_processors.request",

)

Then add in the template you want the Login link:

base.html:

a href="{% url django.contrib.auth.views.login %}?next={{request.path}}"Login/a

This will add a GET argument to the login page that points back to the current page.

The login template can then be as simple as this:

registration/login.html:

{% block content %}

form method="post" action=""

{{form.as_p}}

input type="submit" value="Login"

/form

{% endblock %}

python django 做了个web ,在登录界面我想直接调用系统的login模板,可是每次登录成功之后就跳到

系统的login.html里包含一个重定向URL的next隐藏域。有这么一行:

input type="hidden" name="next" value="{{ next }}" /

登陆以后跳转到系统默认的/accounts/profile

你把value改成你想要跳转的url或者给next重新传一个url也行

django 跳转到登陆前的意向页面

我理解你其实想要保存用户先前访问的页面是吧?

如果是这样,你根本无须写那么一大堆,Django的request.path里就封装了原来的页面地址url,直接使用就可以了!这就是Django的贴心之处。

去刘江的DJango教程看看把,免费的,而且项目实战很精彩。

django 怎么跳转和重定向

跳转和重定向很常见的场景就是登录和注销后返回到当前页面。给你个登录和注销的例子。

比如用户正在浏览一篇文章,发现下载该文章的附件需要登录才能进行,这时候点击登陆链接转入登陆页面,输入用户名密码登陆成功以后,会自动转回原来的那篇文章所在的页面。(目前很多网站采用ajax方法弹出对话框登陆,效果更好一些)

怎么做呢?下面说的是django的实现,但是大多数的web framework都可以这么做。

注销操作:

因为不需要单独的注销页面,相对简单,利用HTTP_REFERER,Django的注销页面这样写就行:

def logout_user(request):

logout(request)

return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))

登录操作:

登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。

可以利用django的session,在转入登陆的时候,用的是页面的get请求,这时候在session中记录HTTP_REFERER,用户输入用户名密码进行登陆的时候(Post请求),从session中取出即可:

def login_user(request):

if request.method == 'GET':

#记住来源的url,如果没有则设置为首页('/')

request.session['login_from'] = request.META.get('HTTP_REFERER', '/')

#TODO:显示登陆页面,blablabla

elif request.method == 'POST':

#TODO: 用户登录操作,blablabla

#重定向到来源的url

return HttpResponseRedirect(request.session['login_from'])

最后的重定向,有时候需要用户感觉到被重定向回去了,就写个简单的页面告诉用户两秒以后跳转,然后改改相应的login代码就行:

p两秒钟后转入如下链接,如果长时间没有响应请直接点击:/p

pa href="{{ refresh_url }}"{{ refresh_url }}/a/p

meta http-equiv="refresh" content="2;url={{ refresh_url }}"

Django 页面跳转, 模板切换时CSS, JS文件路径问题

方法就是把你所需求的js和css放入一个文件夹common下!

link type="text/css" rel="stylesheet" href="common/test.css"/link

script type="text/javascript" src="common/test.js"/script

这样两者引入以后就可以使用了 当然文件夹的路径应该要设置好,

我的例子是common文件和你要引用的文件在同一目录下的!

那你可以把

link type="text/css" rel="stylesheet" href="common/test.css"/link

script type="text/javascript" src="common/test.js"/script

引用的文件都放入一个文件include.php当中,然后在需要的里面加上

include ("include.php"); 就可以在里面使用。如果需要更改的话,只要改include.php里面的就行了!希望是你要的!

Django页面跳转

实例:通过学生所在的班级编号,获取这个班级的信息

a.在html页面的a链接地址中用?添加参数,需要在地址中设置参数名和参数值

b.url中地址不需要设置参数

c.函数中不需要传入此参数,在函数中用GET.get('参数名')的方法获取

a.在a链接路径末尾直接加上参数

b.给url中的地址加上参数匹配,此处暂时忽略下方的name参数

c.函数中需要传入此参数不需要再通过GET.get()获取,可以直接使用

在页面点击登陆,跳转登陆页面,在url中写法如下:

主目录urls文件中配置app的url

app目录urls文件配置login路径

a.正则表达式

b.namespace:name

a.用reverse传参数

注意:reverse中的地址必须用 namespace:name 形式

b.url中的地址必须指定参数名称

a.不需要传参数,可直接用HttpresponseRedirect

b.url地址不需要传参数

结语:以上就是首席CTO笔记为大家介绍的关于django弹出页面跳转怎么写的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/59787.html