Форум программистов, компьютерный форум CyberForum.ru

Python: Web

Войти
Регистрация
Восстановить пароль
 
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
#1

Post tastypie - Python

04.01.2017, 19:28. Просмотров 242. Ответов 16
Метки нет (Все метки)

Всех с Новым годом!

Собственно такой вопрос, есть приложение на Android, которое посылает запрос на сервер(ну к примеру нужно отдать маршруты такси) сервер возвращает json. Так вот, просто возврат делать достаточно легко, а вот как принять запрос?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex925
2386 / 2052 / 478
Регистрация: 19.03.2012
Сообщений: 7,988
04.01.2017, 19:52     Post tastypie #2
moDorks, тебе нужно разбираться в web фреемворками (flask, django and etc)
На flask в простейшем случае это так будет выглядеть
Python
1
2
3
4
5
6
7
8
9
from flask import Flask
app = Flask(__name__)
 
@app.route("/")
def hello():
    return "Hello World!"
 
if __name__ == "__main__":
    app.run()
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
04.01.2017, 20:49  [ТС]     Post tastypie #3
Работаю с Django, по сути это обычная вьюха которая выводит информацию и все?
alex925
2386 / 2052 / 478
Регистрация: 19.03.2012
Сообщений: 7,988
04.01.2017, 20:52     Post tastypie #4
moDorks, ну как бы да, ни какой магии.
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
04.01.2017, 21:03  [ТС]     Post tastypie #5
Хорошо, тогда как мне ответ выводить на этой же ссылки? Или точнее как мне оформить это на странице? сделать обычную форму что бы туда автоматом вводились данные?
alex925
2386 / 2052 / 478
Регистрация: 19.03.2012
Сообщений: 7,988
04.01.2017, 21:49     Post tastypie #6
Это уже ajax. Делаешь аджаксом запрос и с помощью js заполняешь данные, вот и все.
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
05.01.2017, 18:39  [ТС]     Post tastypie #7
Как мне реализовать что бы json выдавал мне массив координат? Я реализовал однако мне выводит много информации не нужной. Вот к примеру выводит {"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 3}, "objects": [{"koordinat": "/v1/way/1/", "length": 2334.0, "resource_uri": "/v1/koords/1/", "width": 343.0}, {"koordinat": "/v1/way/1/", "length": 34.0, "resource_uri": "/v1/koords/2/", "width": 677.0}, {"koordinat": "/v1/way/1/", "length": 667.0, "resource_uri": "/v1/koords/3/", "width": 6.0}]}

А мне нужно что бы был массив координат

Добавлено через 18 секунд
Как мне реализовать что бы json выдавал мне массив координат? Я реализовал однако мне выводит много информации не нужной. Вот к примеру выводит {"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 3}, "objects": [{"koordinat": "/v1/way/1/", "length": 2334.0, "resource_uri": "/v1/koords/1/", "width": 343.0}, {"koordinat": "/v1/way/1/", "length": 34.0, "resource_uri": "/v1/koords/2/", "width": 677.0}, {"koordinat": "/v1/way/1/", "length": 667.0, "resource_uri": "/v1/koords/3/", "width": 6.0}]}

А мне нужно что бы был массив координат
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,868
Записей в блоге: 3
05.01.2017, 19:01     Post tastypie #8
json - это формат представления данных, он не может ничего сам выдавать. как Вы видите конечный результат, что нужно чтобы было на выходе?
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
05.01.2017, 19:11  [ТС]     Post tastypie #9
Вот такое вот
Миниатюры
Post tastypie  
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,868
Записей в блоге: 3
05.01.2017, 19:59     Post tastypie #10
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
d = {"meta":
         {"limit": 20,
          "next": None,
          "offset": 0,
          "previous": None,
          "total_count": 3},
     "objects": [
         {"koordinat": "/v1/way/1/",
          "length": 2334.0,
          "resource_uri": "/v1/koords/1/",
          "width": 343.0},
         {"koordinat": "/v1/way/1/",
          "length": 34.0,
          "resource_uri": "/v1/koords/2/",
          "width": 677.0},
         {"koordinat": "/v1/way/1/",
          "length": 667.0,
          "resource_uri": "/v1/koords/3/",
          "width": 6.0}
     ]
     }
 
print({'mr': [{'lat': x['width'], 'lng': x['length']} for x in d['objects']]})
Код
{'mr': [{'lat': 343.0, 'lng': 2334.0},
        {'lat': 677.0, 'lng': 34.0},
        {'lat': 6.0, 'lng': 667.0}]}
Добавлено через 35 минут
Хотя что-то мне говорит, что эти width и length - это не координаты, но откуда взять координаты - я так и не понял.
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
05.01.2017, 20:13  [ТС]     Post tastypie #11
координаты будут вводится с админки, либо с БД это уже все продуманно, теперь осталось сделать что бы у меня ajax ловил запрос, и выдавал вот этот вот массив. А вот если у меня ьаких координат скажем 40 пар, как мне выводить автоматом?
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,868
Записей в блоге: 3
05.01.2017, 21:32     Post tastypie #12
Может у меня уже не очень варит голова, но я окончательно запутался с требованиями - сначала json должен что-то выдавать, потом данные уже вводятся или берутся из базы... Давайте начнем сначала, - расскажите, что на страничке, где и какие участвуют данные, кто и с какими данными должен манипулировать.

Добавлено через 55 минут
Придумайте самый простой кейс, чтобы не вдаваться во все подробности именно вашего проекта, но который бы отражал именно ту задачу, что Вы пытаетесь реализовать.
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
05.01.2017, 21:46  [ТС]     Post tastypie #13
Основная цель: на сервер идет запрос, сервер отдает ответ в виде массива данных(json).

Как я это сделал: у меня есть 2 модели Путь и координаты, при чем координаты связаны с путем "одно к одному". в админке я могу вводить угодно координат(использую inlines) мне нужно что бы к примеру переходя по ссылке /v1/way/1 у меня выдавался вот этот массив координат(или точнее сказать массив списков скорее всего)
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,868
Записей в блоге: 3
05.01.2017, 22:25     Post tastypie #14
Есть у Вас к примеру страничка типа

HTML5
1
2
3
4
<div id="add">
    <input type="text" id="field1" value="">
    <input type="text" id="field2" value="">
</div>
ваша функция по роуту /add возвращает json типа
JSON
1
{'field1': 1, 'field2': 2}
а скрипт заполняет
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
$(function() {
    $( document ).ready(function() {
        $.ajax({
            url: '/add',
            type: 'POST',
            success: function(response) {
                for (i in response)
                    document.getElementById(i).setAttribute("value", response[i]);
            },
            error: function(error) {
                console.log(error);
            }
        });
    });
});
</script>
на выходе получаете

Post tastypie
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
05.01.2017, 22:41  [ТС]     Post tastypie #15
Клиент: андроид приложение, оно соединяется с сервером(делает запрос) и я должен "чистым json" ответить... не могу просто понять как мне выводить именно массив и все. А как это сделать, уже довольно давно думаю.

Ваш пример я находил, из этого мне только ajax нужен
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,868
Записей в блоге: 3
06.01.2017, 06:56     Post tastypie #16
так зачем там вообще ajax? может
http://www.django-rest-framework.org/ ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2017, 22:36     Post tastypie
Еще ссылки по теме:

Python Http-post возвращает 400
POST и GET PascalABC.NET
Python Авторизоваться в QIWI-кошелек post-запросом
Python Не могу составить post запрос
Python POST запросы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 63
06.01.2017, 22:36  [ТС]     Post tastypie #17
я использую tastypie, или этот лучше?
Yandex
Объявления
06.01.2017, 22:36     Post tastypie
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru