Найти - Пользователи
Полная версия: Соединение джанго сервера с приложением на пайтоне
Начало » Network » Соединение джанго сервера с приложением на пайтоне
1
Junior_Pythoneer123
Я новичок, поэтому не судите строго
У меня есть (пока нету) веб сервер написанный на джанго, это так званый ‘url shortener’. На этом сервере есть база данных, в которой содержаться все созданные пользователями ссылки и их краткие аналоги.

И я хочу сделать приложение (не мобильное), где так же можно будет сокращать ссылки. Тоесть пользователь вводит длинную ссылку, эта ссылка должна отправиться на сервер, на сервере должна создаться краткая и эта краткая ссылка переходит обратно к пользователю в приложении.

Так вот, как мне установить эту связь, чтобы данные могли переходить туда - сюда?

Я немного почитал про сокеты, но не до конца всё понял и не уверен, что это то, что мне нужно.

И ещё одно, это приложение должно поддерживать ‘многопользовательский  режим’, тоесть много пользователей могут заходить одновременно получать свои ссылки.

Это мой первый пост здесь, поэтому не судите строго. Если вам показалось, что все выше написанное - полный бред, так и скажите
JOHN_16
ваш браузер работает с вашим джанго приложением по http. Ваше приложение весьма вероятно должно работать также. Посылать HTTP запросы, получать ответы. Почитайте что такое API в аспекте HTTP. Можно даже сразу сказать про REST API.
Junior_Pythoneer123
Я тут немного почитал об rest api.
Тоесть, как я понимаю, мне нужно на базе джанго сервера создать rest api с помощью django rest framework и через приложения отправлять запросы на сервер и получать ответ.
Чтобы создать эй-пи-ай нужно: создать сериалайзер, чтобы данные были в формате json(только вот что в этом сериалайзере объявлять я не понимаю), потом в views.py создать класс, в котором объявить queryset с нужными мне данными, и потом добавить ссылки в urls.py
Я все правильно понимаю?
Если да, то вот ещё вопросы:
Пользователь из приложения должен отправлять какие-то данные на сервер (как именно сервер принимает эти данные и как именно пользователь их отправляет?), потом он их обрабатывает(где это описать(я так понимаю в views.py)?) и потом отправляет назад(это я так понимаю в return вписывается)
JOHN_16
У вас сейчас слишком низкий уровень знаний что бы давать вам осмысленные ответы. Если вы не знаете как работает http протокол, то вам еще много учиться.
Скажем иначе - описанная вами задача не запределельно сложная, и вполне по силам для новичка, пускай может даже вам так кажется. Но идти к ней нужно постепенно. И срок выполнения быть 2-3 месяца.
Если вы настроены серьезно идти к этой цели. То сперва вам нужно получить хоть какой то пласт базовых знаний о вебе.
Далее можно освоить азы джанги, после этого построение апи.
И потом делать приложение.
На самом деле первым вашим приложением может стать браузер и JS код там (так называемая фронтовая часть).
doza_and
Junior_Pythoneer123
Я новичок, поэтому не судите строго
оки
Половина решения задачи это детальное описание того что вы хотите получить. Попробую задать наводящие вопросы.

Итого:
1. Вот вы хотите ссылку пользователям отдавать короткую… А зачем? Что пользователи с ней будут делать? Вставлять в документ, отдавать другим пользователям? Я бы понял в обратную сторону, вводишь корткую жмешь, переходишь на длинную ссылку. Типа запоминать меньше.
Junior_Pythoneer123
переходит обратно к пользователю в приложении.
Тоже непонятно что это за приложение такое.
2.
Junior_Pythoneer123
все созданные пользователями ссылки
Непонятно как они их создают. Из интернета копируют? Создают на вашем сайте? Процесс создания чаще всего гораздо сложнее процесса отдавания значения по заданному ключику. Надо процесс создания тоже описать.

3. Почему это джанго? Может вам консольное приложение подходит или дестопное GUI? Обоснуйте выбор. Ведь вполне можно сделать консольное приложение в котором вы вбиваете длиннющую ссылку, жмете энтер и оно печатает короткий аналог. Такое приложение гораздо проще сделать, а функционал совпадает с тем что вы описали. Я бы даже советовал начать с такого приложения, а потом его развивать и модернизировать. Т.е. осваивать язык постепенно.
примерно в следующем порядке.
  • Консольный локальный вариант, сохранение в пикл.
  • Консольный вариант с удаленной базой данных для сохранения пар.
  • GUI Вариант с удаленной базой данных
  • Веб вариант
  • ….
  • Супер-пупер коммерчески успешный вариант.




Junior_Pythoneer123
Объясню подробней мой замысел.
Есть сайт, на который пользователь заходит, кидает свою длинную ссылку и получает короткую. Эти две ссылки заносяться в базу данных. Как работает эта ссылка: к примеру, доменное имя моего сайта abc.xy , тогда короткая ссылка будет выглядить так(например) abc.xy/qwerty. В базе данных сайта вместе с этой ссылкой записана длинная ссылка, которая соответствует краткой. Пользователь, который вводит в строку поиска эту ссылку отправляется на мой сайт и мой сайт переадресирует его на длинную ссылку. Надеюсь, понятно объяснил.
Теперь приложение. Мне показалось, что одного сайта будет мало и решил сделать ещё и приложение.
Как оно работает:
1. Пользователь пишет свою длинную ссылку
2. Эта ссылка идет на сервер
3. Там создаётся краткая ссылка и обе ссылки заносяться в базу данных
4. Краткая ссылка переходит назад к пользователю в приложение
Надеюсь опять все понятно.
Теперь, как сделать сайт я знаю, как сделать приложение я тоже знаю, мне нужно только каким то образом установить между ними связь.
doza_and
Junior_Pythoneer123
еперь, как сделать сайт я знаю, как сделать приложение я тоже знаю, мне нужно только каким то образом установить между ними связь.
Ну судя по всему вы почти все знаете.

Такая связь обычно получается сама собой. пары ссылок обычно хранятся в базе данных.
А к базе данных можно обратиться как из веб сервера так и из приложений. Вот и вся связь.

Junior_Pythoneer123
2. Эта ссылка идет на сервер
3. Там создаётся краткая ссылка и обе ссылки заносяться в базу данных

Это очень странно. Вы хотите чтобы приложение само придумывало как сократить ссылку? Для этого обычно нужен хоть минимальных интеллект.
Junior_Pythoneer123
Я не говорил, что знаю все, я просто ищу человека который знает все.
Ссылка должна создаваться рандомно на самом сервере.
Просто рандомно создаётся ссылка из 6-15 символов, используя библиотеку random.
А насчёт связи, то я не совсем понял
py.user.next
Junior_Pythoneer123
И я хочу сделать приложение (не мобильное), где так же можно будет сокращать ссылки. Тоесть пользователь вводит длинную ссылку, эта ссылка должна отправиться на сервер, на сервере должна создаться краткая и эта краткая ссылка переходит обратно к пользователю в приложении.

Junior_Pythoneer123
Есть сайт, на который пользователь заходит, кидает свою длинную ссылку и получает короткую. Эти две ссылки заносяться в базу данных. Как работает эта ссылка: к примеру, доменное имя моего сайта abc.xy , тогда короткая ссылка будет выглядить так(например) abc.xy/qwerty. В базе данных сайта вместе с этой ссылкой записана длинная ссылка, которая соответствует краткой. Пользователь, который вводит в строку поиска эту ссылку отправляется на мой сайт и мой сайт переадресирует его на длинную ссылку.

В общем, тебе нужно сделать API у себя на сайте. К этому API будет подключаться как главная страница сайта, так и твоё приложение.
Допустим, там будет команда
укороти_ссылку(исходная_ссылка) -> укороченная_ссылка
Основная страница сайта будет посылать эту команду самому же сайту и полученный от команды ответ вставлять в страницу.
Приложение также будет посылать эту команду сайту (уже удалённо) и полученный от команды ответ вставлять в поле приложения.

Как сделать API. Это нужно зарегистрировать у себя на сайте POST-запросы в определённом формате. Каждый такой POST-запрос сайт принимает, обрабатывает данные из POST-запроса и затем отдаёт ответ.
Junior_Pythoneer123
Спасибо, наконец-то достойный ответ!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB