Добавление REST [закрытому] Django

Предупреждение: [fункция] : не удалось открыть поток: [причина]

Это происходит, когда вы обычно вызываете файл include , require или fopen, и PHP не смог найти файл или не имел достаточного разрешения на загрузку файла.

Это может произойти по разным причинам:

  • неправильный путь к файлу
  • путь к файлу относительный
  • include path is wrong
  • разрешения слишком ограничительные
  • SELinux в силе
  • и многие другие ...

Одна из распространенных ошибок заключается в том, чтобы не использовать абсолютный путь. Это можно легко решить, используя полный путь или магические константы , такие как __DIR__ или dirname(__FILE__):

include __DIR__ . '/inc/globals.inc.php';

или:

require dirname(__FILE__) . '/inc/globals.inc.php';

Обеспечение правильного пути используется одним шагом в устранении этих проблем, это также может быть связано с несуществующими файлами, правами файловой системы, предотвращающими доступ или открытыми ограничениями на основе самого PHP.

Лучший способ для быстрого решения этой проблемы необходимо выполнить контрольный список устранения неполадок ниже.

Вопросы, относящиеся:

Связанные ошибки:

50
задан Bill the Lizard 7 August 2012 в 03:36
поделиться

7 ответов

я думаю об отступании к простой записи функций представления в Django тот возврат результаты JSON.

  • Явный
  • Портативный к другим платформам
  • не требует Django
исправления
59
ответ дан Ali Afshar 7 November 2019 в 10:36
поделиться

Фрагментируйте API REST Django и придумайте Ваш собственный проект с открытым исходным кодом, которому могут способствовать другие. Я был бы готов способствовать. У меня есть некоторый код, который основан на API форм, чтобы сделать REST.

4
ответ дан Sam Corder 7 November 2019 в 10:36
поделиться

я думаю об отступании к простой записи функций представления в Django тот возврат результаты JSON.

я пошел бы с этим..
Ali суммированный это вполне прилично.

основной момент для меня является явным. Я избегал бы использования функции, которая автоматически преобразовывает объект в json, что, если объект имеет ссылку на пользователя и так или иначе пароль (даже если это хешируется) входит в json отрывок?

3
ответ дан hasen 7 November 2019 в 10:36
поделиться

Я закончил тем, что шел со своей собственной платформой API REST для Django (что я хотел бы избавиться от того, если я могу найти осуществимую альтернативу), с несколькими пользовательскими представлениями, добавленными для угловых случаев, я не хотел иметь дело с. Это удалось хорошо.

Так комбинация 1 и 2; без некоторой формы платформы Вы закончите тем, что писали тот же шаблон для общих падежей.

я также сделал несколько автономных API. Мне нравится иметь их как автономным сервисам, но самое то, что они одинокий от остальной части кода приводят к ним пропускаемый. Никакая техническая причина; просто потрясающий, из сердца вон.

то, Что я действительно хотел бы видеть, является подходом, который объединяет формы Django и API REST, поскольку они часто совместно используют большую логику. Концептуально, если Ваше приложение представляет что-то в HTML, это, вероятно, хочет представить его программно также.

2
ответ дан Parand 7 November 2019 в 10:36
поделиться

you could try making a generic functions that process the data (like parand mentioned) which you can call from the views that generate the web pages, as well as those that generate the json/xml/whatever

1
ответ дан Jiaaro 7 November 2019 в 10:36
поделиться

Обратите внимание, что REST означает не только результаты JSON. REST, по сути, означает предоставление ресурсо-ориентированного API через собственный, но полноценный HTTP. Я не эксперт по REST, но вот несколько вещей, которые делает Rails.

  • URL-адреса должны быть хорошими, простые имена для ресурсов
  • Используйте правильные HTTP-методы
    • HEAD, GET, POST, PUT и DELETE
    • Необязательно с переопределением (параметр формы '_method' переопределит метод HTTP-запроса)
  • Поддержка согласования типа содержимого через заголовок запроса Accept
    • Необязательно с переопределением (расширение имени файла в URL-адресе переопределит тип MIME в заголовке запроса Accept)
    • Доступные типы контента должны включать XML, XHTML, HTML, JSON, YAML и многие другие, если это необходимо

Например, чтобы включить встроенную поддержку HTTP, сервер должен отвечать на

GET /account/profile HTTP/1.1
Host: example.com
Accept: application/json

, как на

GET /account/profile.json HTTP/1.1
Host: example.com

, и он должен отвечать на

PUT /account/profile HTTP/1.1
Host: example.com

var=value

, как на

POST /account/profile HTTP/1.1
Host: example.com

_method=PUT&var=value
30
ответ дан 7 November 2019 в 10:36
поделиться

Тем, кто ищет очень приличное подключаемое приложение API для Django, обязательно ознакомьтесь с jespern's django-поршень , который используется внутри BitBucket.

Он в хорошем состоянии, имеет большое количество подписчиков и несколько классных форков, которые делают такие вещи, как добавление поддержки разбивки на страницы и других методов аутентификации (OAuth поддерживается из коробки).

Обновлено, чтобы отразить, что django-поршень больше не поддерживается.

25
ответ дан 7 November 2019 в 10:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: