使用 json 在 python / django 中设置用户登录,但不知道从哪里开始
Posted
技术标签:
【中文标题】使用 json 在 python / django 中设置用户登录,但不知道从哪里开始【英文标题】:setting up a user login in python / django using json and have no idea where to start 【发布时间】:2012-08-07 03:29:10 【问题描述】:我有一个非常模糊的问题,我不知道从哪里开始。
我需要使用 python(django REST 调用)进行 ajax 登录
jQuery 可以从我这里获得。
我得到了这个:
import sys, base64
import httplib, urllib, urlparse, json
auth = 'Basic %s' % base64.encodestring('%s:%s' % (username, password)).strip()
headers = 'Content-Type':'application/x-www-form-urlencoded', 'Authorization':auth
endpoint = "urlendpoint.com"
url = "/login/"
conn = httplib.HTTPSConnection(endpoint)
conn.request("POST", url, "", headers)
response = conn.getresponse()
if response.status != httplib.OK: raise Exception("%s %s" % (response.status, response.reason))
result = json.load(response)
if "token" not in result: raise Exception("Unable to acquire token.")
if "sessionid" not in result: raise Exception("Unable to acquire session ID.")
print result["token"], result["sessionid"]
conn.close()
我需要通过 POST 发送登录信息,然后设置一个 cookie。
我完全不知道从哪里开始这项任务。使用命令行,我可以设置 /login.py 文件,使用在上述变量字段和 VIOLA 中硬编码的用户名和密码访问所述文件 - 它工作正常。但是,我不知道从哪里开始使用 ajax 来完成这项任务。
这里的主要内容是,一旦用户登录,我需要在登录用户和服务器之间建立会话 ID,以便访问 REST (json) 端点,以便我可以开始添加数据(通过 Ajax)。
任何帮助将不胜感激。
我希望有人
【问题讨论】:
需要写前端还是后端?如果您只想要一些用 Python 编写的用户身份验证系统;然后使用Flask
,这将更容易上手。你需要提出一个具体的问题。
我可以写 html 直到我脸色发青——我只是不知道我应该用上面的代码做什么来建立一个 sessionID 或者用上面打印的“令牌”做什么。当我从命令行使用上述代码时,我可以成功登录。但是,这对我没有好处,因为我需要从网络浏览器中进行。后端存在。我会研究一下 Flask,看看它能提供什么。 **编辑 - 用户授权系统在 Django 中。那部分效果很好。我需要通过网络浏览器通过 https:// 建立连接。
我认为this question 是你想要的。
我会看一看。我认为我的第一步是首先使用纯 jane html 建立连接。然后将其移至 ajax。如果我找到它们,我会发布我的答案:-/
【参考方案1】:
常规视图的实现方式与 AJAX 视图的实现方式在功能上没有区别;唯一的区别是您发送的响应:
from django.contrib.auth import authenticate, login
from django.http import HttpResponse, HttpResponseBadRequest
from django.utils import simplejson
def ajax_login(request):
if request.method == 'POST':
username = request.POST.get('username', '').strip()
password = request.POST.get('password', '').strip()
if username and password:
# Test username/password combination
user = authenticate(username=username, password=password)
# Found a match
if user is not None:
# User is active
if user.is_active:
# Officially log the user in
login(self.request, user)
data = 'success': True
else:
data = 'success': False, 'error': 'User is not active'
else:
data = 'success': False, 'error': 'Wrong username and/or password'
return HttpResponse(simplejson.dumps(data), mimetype='application/json')
# Request method is not POST or one of username or password is missing
return HttpResponseBadRequest()
【讨论】:
以上是关于使用 json 在 python / django 中设置用户登录,但不知道从哪里开始的主要内容,如果未能解决你的问题,请参考以下文章
使用 json 在 python / django 中设置用户登录,但不知道从哪里开始
在 django 模板 [python] 中使用 json.dump 或 pprint 逐行创建一个表
MySQL、JSON、Python、Django - 完全错误