Я создал проект django, который использует логин и проверяет, является ли пользователь персоналом, чтобы выполнять некоторые виды и отображать некоторые страницы. Код отлично работает. Я хочу создать клиентскую программу, которая позволяет говорить в Gtk, которая связывается с проектом django и получает информацию от db, используя api. Api может быть достаточно простым, а не для многих моделей моего проекта Django. Я знаю, что некоторые отличные приложения для создания apis вроде TasyPie, но я думаю, что мне нужно что-то гораздо проще. Мой вопрос заключается в следующем: мой план состоит в том, чтобы использовать urllib2 для получения ответа от представления djangoВход в проект django с использованием внешнего cript скрипта
Но мой вопрос в этом. Как проверить, зарегистрирован ли пользователь, используя urllib2. Я имею в виду, что Django имеет метод request.user. Могу ли я использовать это за пределами 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?
например Джанго вид
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)
Я также финал этого http://goo.gl/5mFifa, который работал как шарм. Вы все еще согласны с тастипией или структурой отдыха? – Apostolos
, что url не работает для меня, но да, эти рамки просты в установке, просты в использовании и сделаны именно для этой цели людьми, которые думали о скучных вещах, таких как дросселирование/кеширование и т. Д. – thebjorn
http://www.forgottenlabs.com/2011/06/how-to-authenticate-in-django-via-urllib2/ Я имел в виду эту ссылку здесь. – Apostolos