- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在尝试实现一个登录验证系统。我正在使用 ajax,这样用户就可以在不被重定向到另一个页面的情况下获得响应。我的 ajax 函数发送用户输入的电子邮件和密码,并在回调函数中获取消息,可以是三种类型:电子邮件、密码或实际的 HttpResponse 对象。但我不知道如何使用 ajax 和 jquery 呈现给定的 http 响应对象。 location.href 是一个选项吗?我正在粘贴下面的代码。
在 JavaScript 中:
function loginSubmit(email, password) {
var d= "email=" + email + "&password=" + password;
$.ajax({
url: "/login",
type: "POST",
dataType: "text",
data: d,
success: function(m) {
if (m == "email") {
$("#emailMessage").html("There is no account associated with this email address.");
$("#emailError").show();
$("#emailError").fadeOut(5000, function() {});
} else if (m == "password") {
$("#emailMessage").html("There is no account associated with this email address.");
$("#emailError").show();
$("#emailError").fadeOut(5000, function() {});
} else {
}
}
});
}
在 View 函数中:
def login(request):
json = request.POST
e = json['email']
p = json['password']
u = User.objects.filter(email=e)
if (len(u)):
up = User.objects.filter(email=e, password=p)
if (len(up)):
return render_to_response('profile.html', context_instance=RequestContext(request))
else:
data = "password"
c = RequestContext(request, {'result':data})
t = Template("{{result}}")
datatype=u"application/javascript"
return HttpResponse(t.render(c), datatype)
else:
data = "email"
c = RequestContext(request, {'result':data})
t = Template("{{result}}")
datatype=u"application/javascript"
return HttpResponse(t.render(c), datatype)
附注目前我正在使用虚拟模板和 HttpResponse 将数据发送到 ajax 成功回调函数。有没有更有效的方法来完成这个(发回 json 数据)?我会等待你们的回复!
最佳答案
from django.contrib.auth import authenticate, login as auth_login
def login(request):
# Use authentication framework to check user's credentials
# http://djangosnippets.org/snippets/1001/ for auth backend
user = authenticate(
email = request.POST['email'],
password = request.POST['password'], )
if user is not None:
# Use Auth framework to login user
auth_login(request, user)
return render_to_response('profile.html',
context_instance=RequestContext(request))
else:
# Return Access Denied
# Never return bad email/bad password. This is information leakage
# and helps hackers determine who uses your platform and their emails.
return HttpResponse("Failed: Bad username or password", status=403)
function loginSubmit(email, password) {
$.ajax({
url: "/login",
type: "POST",
data: {email:email, password:password},
success: function(data) {
var returned_html = $(data);
$("#target_profile_area").clear().append(returned_html);
},
error: function(jqXHR) {
if (jqXHR.statusCode == 403) {
$("#loginMessage").text("Your login details are incorrect");
} else {
$("#loginMessage").text("Error Contacting Server");
}
$("#loginError").show();
$("#loginError").fadeOut(5000, function() {});
}
});
}
关于Ajax 和 Django render_to_response(如何在成功函数内呈现响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571649/
考虑一下: return render(request, 'index.html', {..context..}) return render_to_response('index.html', {.
我发现自己总是向每次调用render_to_response传递一个“用户”变量 我的很多渲染看起来都是这样的 return render_to_response('some/template', {
def func(user): templatename="login.html" return render_to_response(templatename,{'user':use
这是我的代码片段。 soup=BeautifulSoup(html_document) tabulka=soup.find("table",width="100%") dls=tabulka.find
Django 1.5 - django-ldap-auth 尝试找出如何正确使用 request_to_context,因为它仅适用于 login.html 页面本身。 (user.is_authen
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
我有一个要在 html 文件中显示的字符串。字符串中的某些单词(标记为“spc”)需要以黄色背景和较大的字体显示。 我试图使用 render_to_response 将字符串(称为 tdoc)发送到
几天来我一直在与此作斗争,我被难住了。在 views.py 函数的顶部,我设置了一个空字典: variables = {} 在我的函数中,我向字典添加了值 line: 710: variables['
我有一个模板 perfil.html 并想将其发送给它: return render_to_response('perfil.html', query_data, context_instance=
你好,我是 Django 的新手,今天开始学习它,但我在模板继承方面遇到了问题我认为我有这样的功能: def show(request, id=1): return render_to_respons
您好,提前谢谢您。 我知道这是一个完全菜鸟的问题,我已经在各种论坛中进行了搜索,并阅读并重新阅读了文档,所以请保持温和。 我有一个观点: #views.py from django.shortcuts
我正在使用获取模板的路径 paymenthtml = os.path.join(os.path.dirname(__file__), 'template\\payment.html') 并在另一个应用
嗨,当我尝试制作一个简单的应用程序时,我遇到了这个错误。 NameError at /first/ global name 'render_to_response' is not defined Re
目前我正在尝试实现一个登录验证系统。我正在使用 ajax,这样用户就可以在不被重定向到另一个页面的情况下获得响应。我的 ajax 函数发送用户输入的电子邮件和密码,并在回调函数中获取消息,可以是三种类
从磁盘获取模板比从 memcached 之类的东西中提取模板要慢得多,因此每次从磁盘加载它们都是浪费。 Django 将未渲染的模板缓存在内存中还是在 CACHE_BACKEND 中?还是我必须自己实
Django 代码: return render_to_response(template_name, { "form": form, }, context_instance=
我正在使用Mock我无法正确修补 django 的 render_to_response 函数。例如,以下测试永远不会失败: from django.test.client import Cl
我是 Django 新手我有一个 render_to_response 将用户重定向到正确的网址。但在浏览器中,url 没有改变,所以它是由错误 View 处理的...... 在这里 return r
当用户登录时,他被 HttpResponseRedirect 重定向到“/welcome/”url。但我也想返回下面注释掉的语句,因为我也想将字典传递给模板。帮我想出一种方法来组合这两个语句或任何其他
我正在使用 django 1.5.12 开发一个项目。安装了 django-cms 的版本。我有一个由命令“pip freeze > frozen.txt”生成的文件,其中是我安装的下一个信息: Dj
我是一名优秀的程序员,十分优秀!