Python

pyscript 간단 예제

코딩샐러드 2022. 10. 19. 21:42

Html에서 Pyscript 사용하기

Html에서 파이썬 코드를 바로 실행할 수 있으면 좋겠다고 생각한적 있으신가요? Pyscript를 사용하면 가능 합니다.
오늘은 html파일에서 pyscript를 사용하는 방법에 대해서 알아보겠습니다.

pyscript 추가하기

우선 pyscript를 사용하기 위해서는태그안에 아래를 입력해야 합니다.

<!DOCTYPE html>
<head>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head>

그러면 이제 바로 html안에서 파이썬을 실행할 준비가 된 것 입니다.

실행 예제

아래 예제를 보면 예상할 수 있다시피, import 하여 사용하는 것 역시 가능합니다. 예제는태그 안에서 현재 시간을 출력하는 예제 코드에요.
우선 datetime을 import하고, datetime.now()을 입력하여 현재시간을 출력하는 파이썬 코드를 실행해볼게요.

from datetime import datetime
now = datetime.now()
print(now)

아래와 같이 화면이 출력되는 것을 확인할 수 있습니다. pyscript로 실행하면 어떻게 나오는지 볼까요?


이제 이 코드를 html에서 실행해보겠습니다. html 내부에서 실행하고자 하는 위치에 하면 됩니다.
body 태그 안에서 실행하는 예시 입니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>PyScript Hello World</title>
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
  </head>

  <body>
    Hello world! <br>
    This is the current date and time, as computed by Python:
    <py-script>
        from datetime import datetime
        now = datetime.now()
        print(now)
    </py-script>
  </body>
</html>

실행 결과

패키지 활용하기

파이썬에 유용한 package를 쓰려면? tag 안에 사용할 패키지를 기입하면 사용할 수 있습니다.

<py-config>
    packages = [
      "matplotlib"
    ]
 </py-config>

아래 예제를 한번 봐보겠습니다.
matplotlib을 활용하여 div id=”matplotlib-lineplot” 인 태그안에 결과를 출력하는 예제 입니다. 출력할 태그를 지정해주어야 결과가 나옵니다.
py-script 태그안에서 output에 원하는 div id 값을 입력하면 됩니다.
예제에서는 matplotlib-lineplot를 입력하겠습니다.

<body>
    Hello world! <br>
    This is the current date and time, as computed by Python:
        <py-config>
            packages = [
              "matplotlib"
            ]
         </py-config>
        <div id="matplotlib-lineplot"></div>
        <py-script output="matplotlib-lineplot">
            # Python Code

            # importing the matplotlib library
            import matplotlib.pyplot as plt
            fig, ax = plt.subplots()
            # x axis
            x = ["Python", "C++", "JavaScript", "Golang"]
            # y axis
            y = [10, 5, 9, 7]
            plt.plot(x, y, marker='o', linestyle='-', color='b')
            # Naming the x-label
            plt.xlabel('Language')
            # Naming the y-label
            plt.ylabel('Score')
            # Naming the title of the plot
            plt.title('Language vs Score')
            fig
         </py-script>
  </body>

아래와 같이 실행되는 것을 확인할 수 있습니다.