Lightweight Python Web Framework (WSGI)
Project description
Nexom
Lightweight Python Web Framework (WSGI)
Nexomは短いコードで最低限動作し、シンプルで理解のしやすい設計・構造を目指しています。 また細かい仕様も変更でき、多様な処理に対応します。
はじめる
最初のサーバーを起動するには、3つの手順が必要です。
- プロジェクトディレクトリを作成
- nexomをpipでインストール、プロジェクトのビルド
- 起動
1.プロジェクトディレクトリの作成
準備
用意していない場合はディレクトリを作成し、仮想環境も準備してください
mkdir banana_project
cd banana_project
python -m venv venv
source venv/bin/activate
2. pipでインストール、サーバーのビルド
インストール
nexomをインストールします。
pip install
プロジェクトのビルド
プロジェクトディレクトリ上で、以下のコマンドを実行してください
もしNginxもしくはApacheを使用する場合 --gateway オプションにどちらか入力してください
$ python -m nexom start-project # --gateway nginx or apache
以下の構成でプロジェクトが生成されます。
banana_project/
├─ app/
│ ├─ pages/
│ │ ├─ __init__.py
│ │ ├─ _templates.py
│ │ └─ * pages *
│ ├─ static/
│ │ └─ * static items *
│ ├─ templates/
│ │ └─ * html files *
│ ├─ __init__.py
│ ├─ config.py
│ ├─ gunicorn.conf.py
│ ├─ router.py
│ └─ wsgi.py
├─ auth/
│ ├─ __init__.py
│ ├─ config.py
│ ├─ gunicorn.conf.py
│ └─ wsgi.py
└─ data/
├─ log/
│ └─ * app logs *
├─ db/
│ └─ * app db *
└─ gateway/
├─ app.nginx.conf
└─ app.apache.conf
3.起動
以下のコマンドを起動します。
$ python -m nexom run
ブラウザからアクセスできるようになります。 デフォルトのポートは8080です。
ポートなどの設定は config.py から変更してください。
Nginx等使用して外部公開する
gatewayディレクトリにある設定を読み込んでください
http {
include /home/ubuntu/banana_project/gateway/*.conf;
}
Systemdに登録して自動起動する
Ubuntuの場合
/etc/systemd/systemに、banana_sample.serviceを作成します。banana_sample.serviceに以下を書き込みます。(これは一例です。環境に合わせて設定してください。)
サーバーのディレクトリが /home/ubuntu/banana_project にある場合
[Unit]
Description=Nexom Web Freamework
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/ubuntu/banana_project
Environment="PYTHONPATH=/home/ubuntu/banana_project"
ExecStart=/home/ubuntu/banana_project/venv/bin/gunicorn sample.wsgi:app --config sample/gunicorn.conf.py
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
以下のコマンドを実行します
sudo systemd daemon-reload
sudo systemd enable banana_sample
sudo systemd start banana_sample
テンプレートユニットを活用して複数のアプリを効率的に管理
テンプレートユニットを活用し .service ファイルを一枚にまとめられます。
/etc/systemd/system/banana-project@.service
[Unit]
Description=Nexom Web Server (%i)
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/ubuntu/banana_project
Environment="PYTHONPATH=/home/ubuntu/banana_project"
ExecStart=/home/ubuntu/banana_project/venv/bin/gunicorn %iwsgi:app --config %i/gunicorn.conf.py
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
sudo systemd daemon-reload
sudo systemd enable banana-project@banana1
sudo systemd enable banana-project@banana2
sudo systemd enable banana-project@banana3
sudo systemd start banana-project@banana1
sudo systemd start banana-project@banana2
sudo systemd start banana-project@banana3
2026 1/28
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nexom-1.0.7.tar.gz.
File metadata
- Download URL: nexom-1.0.7.tar.gz
- Upload date:
- Size: 60.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92306b85ff36a8b318ca93d635bb2e17bfda7f537d9baa7466924f182601cec
|
|
| MD5 |
a196edaa041415ac248dbc27f7535939
|
|
| BLAKE2b-256 |
fa6c53b2d0d6f1b352dbccabc3c1aa8194938bfdef20d505402f83fca12fcc54
|
File details
Details for the file nexom-1.0.7-py3-none-any.whl.
File metadata
- Download URL: nexom-1.0.7-py3-none-any.whl
- Upload date:
- Size: 70.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f701f4deda86aef934d464379f9259171bff0b15fcc1f5deed79f82fbbafb74
|
|
| MD5 |
ea71d4d6f1ea9a146aa06119932c5895
|
|
| BLAKE2b-256 |
dd9c85c11be26fc982b1ab3d67683a0279ecb3df43adc008cfecdc94f2370766
|