Добавление пользовательской кнопки/тега и управление его функцией с помощью скрипта python в веб-приложении Django

I am quite new to web application development (Django). However, I have a bit of experience in working with html, css, and python. I am developing an application where the user will upload documents as input and change the available parameters values and the application will produce a document in excel format. (Text editor: VS Code)

(Чтобы получить представление, рассмотрим в качестве примера онлайн-приложения для изменения размера pdf).

Я создаю приложение с нуля. Основная проблема заключается в изменении входных данных и получении желаемого результата. Мой подход к этому таков:

  1. Create python scripts for the different major actions( As per our example, create py scripts for pdf compression, merging two pdfs and so on).
  2. Ask the user to upload the required documents. Store the docs uploaded (only temporarily) and use them for further operations (with assumption that default sqlite3 will be sufficient).
  3. In the webpage, add a button or a link (e.g. "Compress", "Merge") and embed the python script (paste the script or add a link to its location) created in step1. That will perform the specific task when the button is pressed.

Я дошел до шага 2 в моей задаче, но потерялся в том, как достичь "3-го" шага. Как мне следует действовать? Любые предложения (с примерами кода) будут высоко оценены. Я также открыт для любого другого подхода.

Заранее спасибо.

Нет необходимости встраивать ваши скрипты python куда-либо (или использовать любой javascript/AJAX, как предлагают некоторые комментарии). Самый простой способ выполнить "шаг 3" следующий:

  • При нажатии кнопки "Сжать"/"Объединить" (или ссылки) отправьте запрос на сервер. Обычно вы используете URL, чтобы указать, какое действие (действия) следует выполнить.

    .
  • Когда сервер получает вышеуказанный запрос, генерируется соответствующий выходной файл. Любые скрипты, установленные на сервере, могут быть использованы для создания этого файла. При этом я бы не рекомендовал писать отдельные скрипты для каждой задачи. Лучше просто включить функции обработки в ваше django-приложение, чтобы сервер мог вызывать их напрямую, без необходимости обращаться к интерфейсу командной строки. Или, если функции будут полезны и вне контекста веб-сервера, их можно перенести в собственный пакет общего назначения.

    .
  • Сохраните созданный файл в базе данных. Это не обязательно, если сервер всегда будет работать только на одной машине, но это все равно хорошая идея, если не по какой-либо другой причине, кроме как сделать ваш код более защищенным на будущее.

    .
  • Создайте URL, который будет обслуживать сгенерированный выходной файл на клиенте.

  • Представьте пользователю ссылку на скачивание с вышеупомянутого URL.

Короче говоря, делайте всю обработку на сервере.


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

Вернуться на верх