HTML에서 Python 실행

Vaibhav Vaibhav 2023년10월10일
  1. PHP를 사용하여 HTML에서 Python 스크립트 실행
  2. Django를 사용하여 HTML에서 Python 스크립트 실행
HTML에서 Python 실행

웹 개발은 광대한 분야이며 우리가 할 수 있는 기회와 일이 무궁무진합니다. 복잡성과 요구 사항은 요구 사항을 따릅니다. 동적 웹 페이지를 구축할 때 Python 또는 PHP와 같은 일부 프로그래밍 언어의 도움이 필요한 작업을 수행해야 하는 경우가 많습니다. 이 기사에서는 HTML에서 Python 스크립트를 실행하는 방법을 배웁니다. 이를 달성할 수 있는 몇 가지 방법에 대해 이야기하겠습니다.

PHP를 사용하여 HTML에서 Python 스크립트 실행

PHP 또는 Hypertext Preprocessor를 사용하여 HTML에서 Python 스크립트를 실행할 수 있습니다. 다음 코드는 간단한 예를 보여줍니다.

HTML 파일 - index.html

<html>
    <head>
        <title>Running a Python script</title>
        <?PHP
        echo shell_exec("python script.py");
        ?>
        </head>
    <body>
        <!-- BODY -->
    </body>
</html>

파이썬 파일 - script.py

a = 2000
b = 21
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")

그러면 콘솔에 다음이 인쇄됩니다.

a = 2000
b = 21
a + b = 2021

일부 값을 Python 스크립트에 전달하려면 다음 코드를 사용할 수 있습니다.

HTML 파일 - index.html

<html>
    <head>
        <title>Running a Python script</title>
        <?PHP
        echo shell_exec("python script.py \"Parameter #1\" \"Parameter #2\"");
        ?>
        </head>
    <body>
        <!-- BODY -->
    </body>
</html>

이제 Python 스크립트는 다음과 같이 보일 것입니다.

파이썬 파일 - script.py

import sys

a = sys.argv[1]
b = sys.argv[2]
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")

출력은 위와 같이 동일하게 유지됩니다.

Django를 사용하여 HTML에서 Python 스크립트 실행

Django는 유명하고 강력한 Python 기반 웹 개발 프레임워크입니다. Python 기반이므로 HTML 내에서 Python 스크립트를 더 쉽게 실행할 수 있습니다. 이를 수행하는 방법은 템플릿 태그를 사용하는 것입니다. Django에는 date, linebreak, safe, random 등과 같은 미리 빌드된 템플릿 태그가 있습니다. 여기에서 더 자세히 알아볼 수 있습니다.

Django는 사용자 정의가 가능하기 때문에 개발자에게 사용자 정의 템플릿 태그를 쉽게 만들 수 있는 방법을 제공합니다. 템플릿 태그를 사용하여 HTML 템플릿에 데이터를 반환할 수 있으며 HTML 템플릿 내부에 포함될 수 있습니다.

간단한 템플릿 태그를 생성하려면 다음 단계를 따르십시오. Django 프로젝트에 core 애플리케이션이 있다고 가정합니다.

  • core 애플리케이션 내부에 templatetags라는 새 디렉토리를 만듭니다. 앱 디렉토리는 다음과 같아야 합니다.
    core/
    	__init__.py
        models.py
        admin.py
    	views.py
        urls.py
        ...
        templatetags/
    		__init__.py
    		...
    
  • templatetags 폴더 안에 my_custom_tags.py라는 Python 파일을 만듭니다.
  • 이 파일 안에 다음 코드를 추가합니다.
    from django import template
    
    register = template.Library()
    
    
    @register.simple_tag
    def my_tag():
        return "Hello World from my_tag() custom template tag."
    

    my_custom_tags.py 모듈은 모든 사용자 정의 템플릿 태그를 보유합니다. 위의 코드에서 볼 수 있듯이 my_tag는 방금 만든 사용자 지정 템플릿 태그이며 이제 모든 HTML 템플릿 내에서 사용할 수 있습니다. 이 템플릿 태그는 템플릿에 "Hello World from my_tag() custom template tag."를 반환합니다. 여기에서 더 많은 템플릿 태그를 생성하여 특정 및 일반적인 작업을 수행할 수 있습니다.

  • 이제 첫 번째 템플릿 태그를 만들었으므로 HTML 템플릿 내부에 로드하여 사용할 차례입니다.
    {% load static %}
    {% load my_custom_tags %}
    
    <!DOCTYPE html>
    <html lang="en" dir="ltr">
    	<head>
        	<title>Intro</title>
      	</head>
        <body>
    		<p>{% my_tag %}</p>
        </body>
    </html>
    

    먼저 템플릿 내부에 my_custom_tags.py 모듈을 로드합니다. 모듈이 로드되면 이제 my_custom_tags 모듈 내에 정의된 템플릿 태그를 사용할 수 있습니다. 템플릿 태그를 사용하기 전에 먼저 사용자 정의 템플릿 태그가 있는 모듈을 로드하는 것이 중요합니다.

템플릿 태그를 사용하는 대신 끝점을 생성하고 해당 끝점에 대한 AJAX 요청을 수행하여 일부 작업을 수행하거나 데이터를 가져올 수도 있습니다. fetch() 또는 jquery 또는 다른 사용 가능한 방법을 사용하여 AJAX 요청을 수행할 수 있습니다. AJAX 요청을 처리하기 위한 끝점을 만드는 동안 끝점이 안전하고 민감한 데이터나 웹 사이트 기능에 쉽게 액세스할 수 없도록 하는 것이 중요합니다. 끝점을 알고 있으면 누구나 AJAX 요청을 할 수 있으므로 여기에 CSRF(Cross Site Request Forgery) 유효성 검사를 추가하고 POST 요청만 처리하도록 구성할 수 있습니다. POST 데이터에는 CSRF 토큰이 포함되어야 합니다.

CSRF에 대한 자세한 내용은 여기를 참조하세요.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.