# X-Admin
###### Simplest fastest minimal ASGI CRUD Admin panel for Tortoise ORM models
It's generating fully native async auto zero config one line app
#### Requirements
- Python >= 3.11
### INSTALL
```bash
pip install x-admin
```
### Run your app
- Describe your db models with Tortoise ORM in `models.py` module
```python
from tortoise import fields
from tortoise_api import Model
class User(Model):
id: int = fields.IntField(pk=True)
name: str = fields.CharField(255, unique=True, null=False)
posts: fields.ReverseRelation["Post"]
class Post(Model):
id: int = fields.IntField(pk=True)
text: str = fields.CharField(4095)
user: User = fields.ForeignKeyField('models.User', related_name='posts')
_name = 'text' # `_name` sets the attr for displaying related Post instace inside User (default='name')
```
- Write run script `main.py`: pass your models module in Api app:
```python
from x_admin import Admin
import models
app = Admin().start(models)
```
- Set `DB_URL` env variable in `.env` file
- Run it:
```bash
uvicorn main:app
```
Or you can just fork Completed minimal runnable example from [sample apps](https://github.com/mixartemev/x-admin/blob/master/sample_apps/minimal/).
#### And voila:
You have menu with all your models at root app route: http://127.0.0.1:8000
---
Made with ❤ on top of the [Starlette](https://www.starlette.io/), [TortoiseORM](https://tortoise.github.io/), [X-API](https://pypi.org/project/tortoise-api/).
Raw data
{
"_id": null,
"home_page": null,
"name": "femto-admin",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "starlette, fastapi, admin, dashboard, datatables, crud, tortoise-orm, ASGI-admin",
"author": null,
"author_email": "Artemiev <mixartemev@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/6a/9f/fa50d721eeef85f2e6e39898547068a2b02840bcfd542d5ec43ae8121f7d/femto_admin-0.7.4.tar.gz",
"platform": null,
"description": "# X-Admin\n###### Simplest fastest minimal ASGI CRUD Admin panel for Tortoise ORM models\nIt's generating fully native async auto zero config one line app \n#### Requirements\n- Python >= 3.11\n\n### INSTALL\n```bash\npip install x-admin\n```\n\n### Run your app\n- Describe your db models with Tortoise ORM in `models.py` module\n```python\nfrom tortoise import fields\nfrom tortoise_api import Model\n\nclass User(Model):\n id: int = fields.IntField(pk=True)\n name: str = fields.CharField(255, unique=True, null=False)\n posts: fields.ReverseRelation[\"Post\"]\n\nclass Post(Model):\n id: int = fields.IntField(pk=True)\n text: str = fields.CharField(4095)\n user: User = fields.ForeignKeyField('models.User', related_name='posts')\n _name = 'text' # `_name` sets the attr for displaying related Post instace inside User (default='name')\n```\n- Write run script `main.py`: pass your models module in Api app:\n```python\nfrom x_admin import Admin\nimport models\n\napp = Admin().start(models)\n```\n- Set `DB_URL` env variable in `.env` file\n- Run it:\n```bash\nuvicorn main:app\n```\nOr you can just fork Completed minimal runnable example from [sample apps](https://github.com/mixartemev/x-admin/blob/master/sample_apps/minimal/).\n\n#### And voila:\nYou have menu with all your models at root app route: http://127.0.0.1:8000\n\n\n---\nMade with \u2764 on top of the [Starlette](https://www.starlette.io/), [TortoiseORM](https://tortoise.github.io/), [X-API](https://pypi.org/project/tortoise-api/).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Simplest fastest minimal ASGI CRUD Admin panel for Tortoise ORM models. It's generating fully native async auto zero config one line app",
"version": "0.7.4",
"project_urls": {
"Homepage": "https://github.com/XyncNet/x-admin",
"Repository": "https://github.com/XyncNet/x-admin"
},
"split_keywords": [
"starlette",
" fastapi",
" admin",
" dashboard",
" datatables",
" crud",
" tortoise-orm",
" asgi-admin"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "12660266af9b12eadbfdea18e7f59b7f15c1a3ec26da7fce10781c5cfabbedbd",
"md5": "7d5a46bb34720fd4749cb9e5d856538f",
"sha256": "31c809092b52b8dfb6b0b452b1815fd75a848b45866432371c404cd2ee43942a"
},
"downloads": -1,
"filename": "femto_admin-0.7.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7d5a46bb34720fd4749cb9e5d856538f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 4439834,
"upload_time": "2024-09-17T16:47:29",
"upload_time_iso_8601": "2024-09-17T16:47:29.047015Z",
"url": "https://files.pythonhosted.org/packages/12/66/0266af9b12eadbfdea18e7f59b7f15c1a3ec26da7fce10781c5cfabbedbd/femto_admin-0.7.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6a9ffa50d721eeef85f2e6e39898547068a2b02840bcfd542d5ec43ae8121f7d",
"md5": "9626a6ef21f4fc8e04515ad8fe1140fd",
"sha256": "36a164f0deeef9f2bae6a28212c6ffbcefeb06bc1779ab2bebe22106b2bfeaaf"
},
"downloads": -1,
"filename": "femto_admin-0.7.4.tar.gz",
"has_sig": false,
"md5_digest": "9626a6ef21f4fc8e04515ad8fe1140fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 4415832,
"upload_time": "2024-09-17T16:47:32",
"upload_time_iso_8601": "2024-09-17T16:47:32.974482Z",
"url": "https://files.pythonhosted.org/packages/6a/9f/fa50d721eeef85f2e6e39898547068a2b02840bcfd542d5ec43ae8121f7d/femto_admin-0.7.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-17 16:47:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "XyncNet",
"github_project": "x-admin",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "femto-admin"
}