Skip to content

Commit 63f53ae

Browse files
27 - New Data Model
1 parent 8dca1c9 commit 63f53ae

File tree

6 files changed

+46
-4
lines changed

6 files changed

+46
-4
lines changed

full_stack_python/blog/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from .model import BlogPostModel
2+
3+
__all__= [
4+
'BlogPostModel'
5+
]

full_stack_python/blog/model.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from datetime import datetime
2+
import reflex as rx
3+
4+
import sqlalchemy
5+
from sqlmodel import Field
6+
7+
from .. import utils
8+
9+
class BlogPostModel(rx.Model, table=True):
10+
# user
11+
title: str
12+
content: str
13+
created_at: datetime = Field(
14+
default_factory=utils.timing.get_utc_now,
15+
sa_type=sqlalchemy.DateTime(timezone=True),
16+
sa_column_kwargs={
17+
'server_default': sqlalchemy.func.now()
18+
},
19+
nullable=False
20+
)
21+
updated_at: datetime = Field(
22+
default_factory=utils.timing.get_utc_now,
23+
sa_type=sqlalchemy.DateTime(timezone=True),
24+
sa_column_kwargs={
25+
'onupdate': sqlalchemy.func.now(),
26+
'server_default': sqlalchemy.func.now()
27+
},
28+
nullable=False
29+
)
30+
# publish_date
31+
# publish_time

full_stack_python/contact/model.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
import sqlalchemy
77
from sqlmodel import Field
88

9+
from .. import utils
910

10-
def get_utc_now() -> datetime:
11-
return datetime.now(timezone.utc)
1211

1312
class ContactEntryModel(rx.Model, table=True):
1413
user_id: int | None = None
@@ -17,7 +16,7 @@ class ContactEntryModel(rx.Model, table=True):
1716
email: str | None = None # = Field(nullable=True)
1817
message: str
1918
created_at: datetime = Field(
20-
default_factory=get_utc_now,
19+
default_factory=utils.timing.get_utc_now,
2120
sa_type=sqlalchemy.DateTime(timezone=True),
2221
sa_column_kwargs={
2322
'server_default': sqlalchemy.func.now()

full_stack_python/full_stack_python.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from rxconfig import config
66
from .ui.base import base_page
77

8-
from . import navigation, pages, contact
8+
from . import blog, contact, navigation, pages
99

1010
class State(rx.State):
1111
"""The app state."""

full_stack_python/utils/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from . import timing
2+
3+
__all__ = ['timing']

full_stack_python/utils/timing.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from datetime import datetime, timezone
2+
3+
def get_utc_now() -> datetime:
4+
return datetime.now(timezone.utc)

0 commit comments

Comments
 (0)