2013-10-13 5 views
0

Я создал проект 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) 

ответ

0

Вы можете захватить и установить куки сессии, которая является то, что браузер при входе вас в, однако это именно использование -case для тастипирования и рамки django rest. Они обоим намного проще в использовании, чем то, что вы планируете здесь (даже для небольших проектов).

+0

Я также финал этого http://goo.gl/5mFifa, который работал как шарм. Вы все еще согласны с тастипией или структурой отдыха? – Apostolos

+0

, что url не работает для меня, но да, эти рамки просты в установке, просты в использовании и сделаны именно для этой цели людьми, которые думали о скучных вещах, таких как дросселирование/кеширование и т. Д. – thebjorn

+0

http://www.forgottenlabs.com/2011/06/how-to-authenticate-in-django-via-urllib2/ Я имел в виду эту ссылку здесь. – Apostolos

Смежные вопросы