我创建了一个 django 项目,该项目使用登录并检查用户是否是员工,以便执行一些视图并呈现一些页面。代码效果很好。我想创建一个客户端程序,让我们说在 Gtk 中连接到 django 项目并使用 api 从 db 获取信息。api 可以很简单,我的 Django 项目中没有很多模型。我知道有一些很棒的应用程序可以创建像 TasyPie 这样的 api,但我认为我需要一些更简单的东西。不过我的问题是:我的计划是使用 urllib2 从 django 视图中获取响应
但我的问题是这个。如何检查用户是否使用 urllib2 登录。我的意思是 Django 有 request.user 方法。我可以在 Django 之外使用它吗?或者我是否需要在每个请求中始终发送用户名和密码,并让 django 检查用户是否是经过身份验证的员工等?
例如,我在想这样的 django 视图
def get_some_data(request):
user = request.user
if user.is_authenticated():
return some json_data
和 urllib2 脚本
data = some_data_to_post_dict
data = urllib.urlencode(data)
req = urllib2.Request('http://127.0.0.1:8000/get_some_data.html')
resp = urllib2.urlopen(req)
这就是我的想法的基本逻辑。我是否需要将用户名和密码放入我的 urllib2 脚本的数据中,并在对 api 的每个请求中检查它们?
例如 django 视图
def get_some_data(request):
if request.method = 'POST':
username = request['username']
password = request.['password']
user = authenticate(username=username, password=password) #do i need that in every view of my api's?
if user_loggedin:
return json_data
urllib2 脚本
data = {'username'='some_username', 'password'='some_password', other_data} #do i have to always include username and password on my data from urllib2 script?
data = urllib.urlencode(data)
req = urllib2.Request('http://127.0.0.1:8000/get_some_data.html')
resp = urllib2.urlopen(req)