An experimental Full-Stack Framework for Python
Project description
An Experimental Full-Stack Framework For Python.
📝 Table of Contents
🧐 About
A full-stack framework built with python. The library is shipped with Bootstrap 5 for your styling needs.
Docs: https://sas2k.github.io/Lemon
Discord Server: https://discord.gg/Dw6hCp3usF
Features:
- UI Library (Development)
- A full Back-end Capabilities
- Django style route adding (See
examples/django-routing.py
) - An ORM and migrations feature (check-out -> examples/Lemon-App) (ORM supports strings only for now.)
- React like syntax
- middleware api
- a terminal app to create app [create-lemon-app < app-name >]
- Component Generator [https://github.com/Sas2k/Lemon-CLI]
- Reactivity (See
examples/reactivity-example
) - Testing (See
examples/Tests.py
) - Custom Exception Handler (
examples/exception-handler.py
) - Blueprint Routing (
examples/Lemon-App
)
If you want to have live reloading try uvicorn: https://www.uvicorn.org/
If you don't think this isn't capable to handle anything check these out!
https://portfolio-sas2k.vercel.app/ | https://github.com/Sas2k/portfolio
https://github.com/Sas2k/HTTP-Blog
🗒 To-Do
Legend:
[x] - checked [*] - doing [ ] - Not Done
- Form Data Handling (Currently being Developed)
- States (Currently being Developed)
🏁 Getting Started
Docs Are still in Development Try heading over to /examples
for some idea.
Here is an example below
from Lemon.components import Component
from Lemon.Server.server import Server
app = Server(static_dir=None)
Root = Component("Home Page", None, None) #Root component
class Home(Component):
"Home Page Component"
name = "Home"
def item(props: dict):
"The Item Function: where the html and props are passed"
return """
<h1>Hello World!</h1>
"""
Root.add([Home])
@app.route("/") #Route decorator
def index(request, response):
home_page = Root.render("<Home/>")
response.text = home_page
app.run() #runs the app
Folder Structure for apps
Here is the folder structure I recommend. (you can create your own structure based on your needs)
App/
- src/
- Components/
- __init__.py
- components.py
- Models/
- __init__.py
- models.py
- Routes/
- __init__.py
- routes.py
- Public/
- css/
- style.css
- js/
- script.js
- app.py
- base.py
- README.md
Installing
To install with,
pip: pip install Lemon-Library
⛏️ Built Using
✍️ Authors
See also the list of contributors who participated in this project.
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
File details
Details for the file Lemon-Library-1.3.9.tar.gz
.
File metadata
- Download URL: Lemon-Library-1.3.9.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4ca90aee1ae2b5a08dd9a4e42db24f08066a09a06ada416c813e5513175f2e7 |
|
MD5 | 9ebe7e58309432ad19b41a18126883c6 |
|
BLAKE2b-256 | 1d712bc7d9563d86636a79160ab1e123a8782052311c0ab52027540c9f7b68d2 |
File details
Details for the file Lemon_Library-1.3.9-py3-none-any.whl
.
File metadata
- Download URL: Lemon_Library-1.3.9-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecf76d8a573201756c3e1affc3b5b33eb471f35cbfae2f64f5e954da7f44e11d |
|
MD5 | 47cb9d740769b5a440f67b8f58bdb32f |
|
BLAKE2b-256 | fa99484f271b7a90205871155dfdc8b231639784538de6f500d159d69b0f3ba8 |