Skip to content

Commit 8fb79f2

Browse files
31 - Editing Pre-Filled Form Input Basics
1 parent 798ba2f commit 8fb79f2

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

full_stack_python/blog/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
from .add import blog_post_add_page
22
from .detail import blog_post_detail_page
3+
from .edit import blog_post_edit_page
34
from .list import blog_post_list_page
45
from .model import BlogPostModel
56
from .state import BlogPostState
67

78
__all__= [
89
'blog_post_add_page',
910
'blog_post_detail_page',
11+
'blog_post_edit_page',
1012
'blog_post_list_page',
1113
'BlogPostModel',
1214
'BlogPostState'

full_stack_python/blog/edit.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import reflex as rx
2+
3+
from ..ui.base import base_page
4+
# from . import forms
5+
6+
class EditExampleState(rx.State):
7+
title: str = "Hello World"
8+
content: str = "This is my blog post"
9+
10+
def handle_submit(self, form_data):
11+
print(form_data)
12+
13+
14+
def blog_post_edit_sample_form() -> rx.Component:
15+
return rx.form(
16+
rx.vstack(
17+
rx.hstack(
18+
rx.input(
19+
value=EditExampleState.title,
20+
on_change=EditExampleState.set_title,
21+
name="title",
22+
placeholder="Title",
23+
required=True,
24+
type='text',
25+
width='100%',
26+
),
27+
width='100%'
28+
),
29+
rx.text_area(
30+
value = EditExampleState.content,
31+
on_change = EditExampleState.set_content,
32+
name='content',
33+
placeholder="Your message",
34+
required=True,
35+
height='50vh',
36+
width='100%',
37+
),
38+
rx.button("Submit", type="submit"),
39+
),
40+
on_submit=EditExampleState.handle_submit,
41+
)
42+
43+
44+
45+
46+
def blog_post_edit_page() -> rx.Component:
47+
my_form = blog_post_edit_sample_form()
48+
my_child = rx.vstack(
49+
rx.heading("Edit Blog Post", size="9"),
50+
rx.desktop_only(
51+
rx.box(
52+
my_form,
53+
width='50vw'
54+
)
55+
),
56+
rx.tablet_only(
57+
rx.box(
58+
my_form,
59+
width='75vw'
60+
)
61+
),
62+
rx.mobile_only(
63+
rx.box(
64+
my_form,
65+
width='95vw'
66+
)
67+
),
68+
spacing="5",
69+
align="center",
70+
min_height="95vh",
71+
)
72+
return base_page(my_child)

full_stack_python/full_stack_python.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ def index() -> rx.Component:
6767
on_load=blog.BlogPostState.get_post_detail
6868
)
6969

70+
app.add_page(
71+
blog.blog_post_edit_page,
72+
route="/blog/[blog_id]/edit",
73+
on_load=blog.BlogPostState.get_post_detail
74+
)
75+
7076
app.add_page(contact.contact_page,
7177
route=navigation.routes.CONTACT_US_ROUTE)
7278
app.add_page(

0 commit comments

Comments
 (0)