Update README.md
Added Repo Map, Why FluidFrameDev and License
This commit is contained in:
parent
548668ec25
commit
a1f3c00caf
68
README.md
68
README.md
|
@ -1,29 +1,65 @@
|
||||||
# FluidFrameDev
|
# FluidFrameDev 🧪🐍
|
||||||
|
|
||||||
# How to Code in Anvil 🛠️🐍
|
> Anvil tutorials that slip smoothly from client to server.
|
||||||
|
> Python in a tux, code in sweatpants.
|
||||||
|
|
||||||
> Python, but make it full-stack. Anvil lets you build web apps with Python on the front-end, back-end, and that weird in-between bit where bugs are born.
|
## What’s inside
|
||||||
|
A set of small, sarcastic, and surprisingly practical Anvil guides you can finish in coffee-sized chunks:
|
||||||
|
|
||||||
## What this repo is
|
- **01 – Hello, Fluid Frame**: Button → server call → dopamine.
|
||||||
A fast, slightly sarcastic tutorial set you can follow in 30–60 minute bursts:
|
- **02 – Data Tables**: Persist stuff like a functioning adult.
|
||||||
- **01 – Hello, Anvil**: Your first form, your first button, your first victory lap.
|
- **03 – Server Modules**: Secrets and logic where JavaScript can’t see them.
|
||||||
- **02 – Data Tables**: Store data like a responsible adult.
|
- **04 – Uplink**: Talk to your local machine like it owes you money.
|
||||||
- **03 – Server Modules**: Do secure things on the server, not in the browser. (No, really.)
|
- **05 – Auth**: Users, roles, and pretending to be an enterprise.
|
||||||
|
|
||||||
## TL;DR: Hello Anvil
|
---
|
||||||
1. Go to [anvil.works](https://anvil.works) → **New App** → **Blank App** (Material Design).
|
|
||||||
2. Add a **Button** to `Form1`.
|
|
||||||
3. Click **Code** and paste:
|
|
||||||
|
|
||||||
**`Form1` (client)**
|
## TL;DR demo
|
||||||
|
|
||||||
|
**Client (`Form1`)**
|
||||||
```python
|
```python
|
||||||
from anvil import *
|
from anvil import *
|
||||||
import anvil.server
|
import anvil.server
|
||||||
|
|
||||||
class Form1(Form1Template):
|
class Form1(Form1Template):
|
||||||
def __init__(self, **properties):
|
|
||||||
self.init_components(**properties)
|
|
||||||
|
|
||||||
def button_1_click(self, **event_args):
|
def button_1_click(self, **event_args):
|
||||||
msg = anvil.server.call('hello_server', self.text_box_1.text or "World")
|
msg = anvil.server.call('hello_server', self.text_box_1.text or "World")
|
||||||
Notification(msg, timeout=2).show()
|
Notification(msg, timeout=2).show()
|
||||||
|
````
|
||||||
|
|
||||||
|
**Server (`ServerModule1`)**
|
||||||
|
|
||||||
|
```python
|
||||||
|
import anvil.server
|
||||||
|
|
||||||
|
@anvil.server.callable
|
||||||
|
def hello_server(name):
|
||||||
|
return f"Hello from the server, {name} 👋"
|
||||||
|
```
|
||||||
|
|
||||||
|
Run ▶️. If it works, nod like you meant that to happen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Repo map
|
||||||
|
|
||||||
|
* `tutorials/` – step-by-steps you can copy/paste
|
||||||
|
* `examples/` – tiny scripts showing patterns
|
||||||
|
* `assets/` – screenshots, gifs, and banners
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why FluidFrameDev?
|
||||||
|
|
||||||
|
* No JavaScript required (but you can still flex).
|
||||||
|
* Python everywhere.
|
||||||
|
* Deploy in minutes, not after the next sprint.
|
||||||
|
* Learn by building, breaking, and laughing at your own mistakes.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT. Steal the jokes too.
|
||||||
|
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue