Регистрация функции в Django

У меня есть очень простой скрипт на python, который запускает индекс сходства Танимото между образцом молекулы и базой данных молекул:

from openbabel import pybel

def get_similar(targetmol):
    results = []
    # calculate fingerprints of the sample
    targetfp = targetmol.calcfp()
    for mol in pybel.readfile("smi", "/path/to/db.smi"):
        # calculate fingerprints of the db
        fp = mol.calcfp()
        # calculate the Tanimoto index via the "|" operator
        tan = fp | targetfp
        if tan[0] >= 0.8:
            results.append(tan)
    return results

targetmol = next(pybel.readfile("smi", "/path/to/sample.smi"))
print(get_similar(targetmol))

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

Идеально, пользователи будут представлять свои собственные молекулы и получать список наиболее похожих молекул, имеющихся в моей базе данных, на новой странице, как функцию "по клику".

Что мне нужно сделать здесь, так это позволить скрипту использовать молекулу пользователей в качестве образца, но, самое главное, я не знаю, как развернуть эту функцию во фреймворке Django.

Поскольку я знаю, что это не магазин кода, я просто хотел бы получить четкое объяснение, как зарегистрировать мою функцию, как вызвать ее как функцию on-click и что я должен изменить, чтобы позволить скрипту использовать молекулу пользователя вместо sample.smi.

Для справки я черпал вдохновение из этого репозитория https://github.com/michal-stuglik/django-blastplus, но из-за моих скудных или нулевых знаний о python и Django, я заблудился.

Спасибо за время, потраченное на чтение и ответ на мой вопрос.

System

NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
Django==3.1.13
django-admin==2.0.1
openbabel-wheel==3.1.1.7

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

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

Подробнее о том, как создать представление и форму, вы можете прочитать на этой странице: https://docs.djangoproject.com/en/4.0/topics/forms/

Мое объяснение - это лишь небольшой обзор того, что вам следует делать, не стесняйтесь задавать мне более конкретные вопросы!

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