Skip to main content

Lightweight Python Web Framework

Project description

BunnyPy

a Lightweight Python Web Framework

BunnyPy

PyPI Downloads License

English | 中文

Installation

pip install bunnypy

Simple Usage

a HelloWord Application

from bunnypy import Bunny

app = Bunny()

@app.controller
class IndexController:
    def ac_index(self):
        return 'Hello Bunny'

if __name__ == '__main__':
    app.run()

Data Model

from bunnypy import Bunny
import sqlite3

# ------------------------------------------------------------
# Config database using SQLite3

db = Bunny.SQLiteDatabase(sqlite3.connect('test.db'), 'tp_')
app = Bunny(database=db)

# ------------------------------------------------------------
# Declare a Model Class


@app.data
class Message:
    __pk__ = ['id']
    __ai__ = 'id'
    id = 'integer not null'
    msg = 'text not null'

    def __init__(self, msg=None):
        self.msg = msg


# ------------------------------------------------------------
# Create a table

Message.create() # create a table named "tp_message"

# ------------------------------------------------------------
# Insert Data

Message(msg="New Message").insert() # add a new row into table "tp_message"

# ------------------------------------------------------------
# Chained-call style query

# get one row where msg equals "Test"
Message.where(" msg = ? ",["Test"]).get(['id','msg'])

# get 10 rows of data starting at position 0 and sort by id in reverse order
size = 10
start = 0
Message.where().order(' id desc ').limit(size,start).get_all(['id','msg'])

Template

temp.html in template dir

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Template</title>
</head>
<body>
Output: {{ msg }}
</body>
</html>

Python code

from bunnypy import Bunny

app = Bunny()

@app.controller
class IndexController:
    def ac_index(self):
        return app.render('temp.html',{"msg":"Hello World"})


if __name__ == '__main__':
    app.run()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BunnyPy-0.3.2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

BunnyPy-0.3.2-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file BunnyPy-0.3.2.tar.gz.

File metadata

  • Download URL: BunnyPy-0.3.2.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for BunnyPy-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4bf1a72b18a40399d0a5dddfbb1dae8f96e3bb9a6a9cd96f49af0f86094e753b
MD5 285c4537e6f32755c2f61834e46d52bb
BLAKE2b-256 ee1448259c59429ff7c136a0bba79e8bb2646de8b9cee75fe81b8a03e8a19d0f

See more details on using hashes here.

File details

Details for the file BunnyPy-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: BunnyPy-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for BunnyPy-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 13275fee1c086a32215ce00e999356b5212f9839a08bf4ea2c851811e7b232aa
MD5 2331effe136d07394a562413d206f435
BLAKE2b-256 c0de693e9c06931b2ed447e7ce334be53db91f091f37a55b5a48d6e20aa3dc25

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page