K.MIURA@OUC

The special secret of making dreams come true can be summarized in four C’s. They are Curiosity, Confidence, Courage, and Constancy. –Walt Disney

Fletを基礎にウェブアプリを作る

[基本環境]
  • Debian 12 (amd64):Host(VM)
  • Python 3.11:Host(VM)
  • Ubuntu 22.04(amd64):Guest(Container)
  • Python 3.11:Guest(Container)
[やりたいこと]
  • Fletを基礎にしたウェブアプリ開発の基盤環境を作りたい
[注意]
[Flet環境の構築手順]
  1. ホストOS上にDockerコンテナを展開する
    ※ コンテナ名をfletにしている
 $ docker pull ubuntu:22.04
 $ docker run -itd --privileged -p 443:443/tcp --name flet ubuntu:22.04
 $ docker exec -it flet /bin/bash
  1. Fletプログラミング用のユーザを作成する
    ※ ここから先はコンテナ(flet)内での手続き
    ※ ユーザ名をfuserにしている
 $ apt update
 $ apt upgrade
 $ apt install sudo
 $ adduser fuser
 $ usermod -G sudo fuser
 $ su - fuser
  1. Flet環境を構築する
    ※ 2の続きなので、ここもコンテナ内での手続き
    ※ python仮想環境名をenvにしている
    ※ Flet環境名をflet-testにしている
 $ sudo apt install nano python3.11-venv pip git
 $ python3.11 -m venv env
 $ source env/bin/activate
 $ pip install flet
 $ flet create flet-test
 $ editor flet-test/main.py
   main.pyの一番下の行にある
   ft.app(main)   ft.app(target=main,view=None,port=8000)に変更して上書き保存する
 $ sudo apt install apache2 systemctl
 $ sudo a2enmod ssl
 $ sudo a2ensite default-ssl
 $ sudo editor /etc/apache2/conf-available/reverse_proxy.conf
   reverse_proxy.confの中に、以下の内容を書いて保存する
   <IfModule mod_proxy.c>
     ProxyRequests Off
     <Proxy *>
       Require all granted
     </Proxy>
     ProxyPass /ws ws://localhost:8000/ws
     ProxyPassReverse /ws ws://localhost:8000/ws
     ProxyPass / http://localhost:8000/
     ProxyPassReverse / http://localhost:8000/
   </IfModule>
 $ sudo a2enconf reverse_proxy
 $ sudo a2enmod proxy proxy_http
 $ sudo systemctl restart apache2
  1. Flet環境を起動する
    ※ 3の続きなので、ここもコンテナ内での手続き
 $ python3.11 flet-test/main.py &
   PCのウェブブラウザを開いて、
     https://127.0.0.1/ または 
     グローバルIPを持っているなら、127.0.0.1をグローバルIPにする
   に接続すると、Fletの実行結果を確認できるはず
  1. Flet環境を停止する
    ※ 4の続きなので、ここもコンテナ内での手続き
 $ ps -aux | grep python
   このコマンドを実行すると
     fuser <数字> ..略.. python3.11 flet-test/main.py
   という行があるはず
   <数字>は、その都度、確認すること!
 $ kill -9 <数字>
[Fletプログラミング]
  • main.pyを編集すると、実行結果が変わります
  • プログラム例は、別の記事でまとめたいと思います

Share