ã¯ããã«
ããã«ã¡ã¯ãtosane932ã§ãã
æ®æ®µã¯ãã©ãã¯ãã©ã€ããŒãšããŠåããªãããPythonãWebéçºãåŠãã§ããŸãã
ãããŸã§ãã®ã·ãªãŒãºã§ã¯ãèªåã§éçºããŠãã sales_data_app ã®å®éã®ã³ãŒããææã«ããŠãåãããªããšãããåºç€ããæãçŽããŠããŸããã
ãã® sales_data_app ããååç»é²ã»æ¥æ¬¡å£²äžã»å£²äžåæã ãã§ãªããåºèã¡ã¢ã»çºæ³šã»ã¿ã¹ã¯ãªã©æ©èœãå¢ããŠããŸããã
æåã¯å£²äžç®¡çã¢ããªãšããŠäœã£ãŠããŸãããã圹å²ãå°ããã€åºãã£ãŠããã®ã§ãBakery Hub ãžæ¹åããŸããã
ãªãBakeryHubãªã®ãâïž
ååç»é²ã売äžç®¡çã ãã§ãªããçºæ³šã»ã¡ã¢ã»ã¿ã¹ã¯ãªã©ããã³å±ã®ä»äºã§äœ¿ãæ©èœã1ã€ã®å Žæã«éãŸã£ãŠããããã§ãã
ã売äžç®¡çã¢ããªããšããããããã³å±ã®æ¥åããŸãšããŠæ±ã æ ç¹ïŒHubïŒ ã«è¿ããªã£ãŠããã®ã§ããã®ååã«ããŸããã
ä»åŸã Bakery Hub ãšããŠããã³å±ã®ä»äºã§äœ¿ãæ©èœãèããå¢ãããŠãããã°ãšæã£ãŠããŸãã
ããã«åãããŠããã®åºç€åŠç¿ã·ãªãŒãºãä»åããã
ãBakery Hubã§åŠã¶Pythonã»Webã¢ããªéçºã
ãžå€æŽããŸããã
-
Guest Demo
https://bakery-salesdata.onrender.com/
Renderäžã§å ¬éããŠãããããååã¢ã¯ã»ã¹æã¯ç»é¢ã衚瀺ããããŸã§å°ãæéããããå ŽåããããŸãã
ã§ã¯æ©é9æéç®ã®ããŒãã§ããâŠâŠ
ä»ååŠã¶ã®ã¯ CRUD ã§ãã
ð¹ããããããã¹ã¿ãŒãã©ã€ã³ã ã
CRUDã¯ãWebã¢ããªã§ããŒã¿ãæ±ããšãã®åºæ¬ã«ãªãèãæ¹ã§ãã
ä»å㯠Bakery Hubã®åºèã¡ã¢ããŒã« ãææã«ããŠã
- Create
- Read
- Update
- Delete
ã®4ã€ããå®éã®ç»é¢ãšã³ãŒãã®äžã§ã©ã䜿ãããŠããã®ããèŠãŠãããŸãã
ð ä»åã®ææã¯ãåºèã¡ã¢ããŒã«ã
Bakery Hubã«ã¯ã売äžç®¡çãšã¯å¥ã« åºèã¡ã¢ããŒã« ããããŸãã
åºèã§äœ¿ãã¡ã¢ãã
- 远å ãã
- äžèЧã§èŠã
- ç·šéãã
- ãŽãç®±ãžç§»ã
- 埩å ãã
- å®å šã«åé€ãã
ãšãã£ãæäœãã§ããŸãã
ã¡ã¢åž³ãTODOã¢ããªã¯ãWebéçºãåŠã³å§ãããšãã«ããç»å Žãã顿ã ãšæããŸãã
åèªèº«ãæ¹ããŠã³ãŒããèŠãŠã¿ããšã
ð¹ããããWebã¢ããªã®åºæ¬ãããªãè©°ãŸã£ãŠããªã
ãšãªããŸããã
ä»åã¯ãã®äžã§ã CRUD ãèŠãŠãããŸãã
å³1ïŒåºèã¡ã¢ããŒã«ã®äžèЧç»é¢ã§ãã5ä»¶ã®ã¡ã¢ã衚瀺ãããŠãããããããæ°ããã¡ã¢ã®è¿œå ã»è¡šç€ºã»ç·šéã»åé€ãžé²ããŸãã
CRUDãšã¯ïŒ
CRUDã¯ãããŒã¿ãæ±ããšãã®åºæ¬çãª4ã€ã®æäœããŸãšããèšèã§ãã
| åå | æå³ | åºèã¡ã¢ã§èãããš |
|---|---|---|
| Create | äœã | æ°ããã¡ã¢ã远å ãã |
| Read | èªã | ä¿åãããã¡ã¢ãèŠã |
| Update | æŽæ°ãã | ã¡ã¢ãæžãçŽã |
| Delete | åé€ãã | ã¡ã¢ãåé€ãã |
é æåã䞊ã¹ããšã
Create
Read
Update
Delete
â
CRUD
ãšãªããŸãã
CRUDã¯Pythonã®æ§æã§ã¯ãããŸããã
Webã¢ããªãããŒã¿ããŒã¹ã§ããŒã¿ãæ±ããšãã«ãã䜿ãããèãæ¹ã§ãã
ä»åã¯Pythonã»Flaskã»SQLAlchemyã䜿ã£ãŠãBakery Hubã§ã¯CRUDãã©ãå®è£ ãããŠããã®ããèŠãŠãããŸãã
ð¹ãæ°ããPythonææ³ãããªãã®ãã
ä»åã¯ããããä»ãŸã§ã®ææ¥ãšã®å°ã倧ããªéãã§ãã
ãŸãã¯ç»é¢ã®æäœãšçµã³ã€ãã
åºèã¡ã¢ã§èãããšãããªãåãããããã§ãã
ã¡ã¢ãæžã
â
Create
ã¡ã¢ãèŠã
â
Read
ã¡ã¢ãæžãçŽã
â
Update
ã¡ã¢ãåé€ãã
â
Delete
ç»é¢äžã§ã¯æ®æ®µäœæ°ãªããã£ãŠããæäœã§ãããè£åŽã§ã¯ããããåŠçããããŸãã
ããããå®éã®ã³ãŒããèŠãŠã¿ãŸãã
â Create â ããŒã¿ãäœã
ãŸã㯠Createã
æ°ããã¡ã¢ã远å ããåŠçã§ãã
ææã®äœæ
shop_memos.py
â
create_memo()
å®éã®ã³ãŒãã®äžéšã§ãã
db.session.add(
ShopMemo(
dataset_id=locked_dataset.id,
title=title,
body=body,
)
)
db.session.commit()
åããŠèŠããšå°ãé·ãæããŸãã
ãŸãã
ShopMemo(
dataset_id=locked_dataset.id,
title=title,
body=body,
)
ã§ãæ°ããã¡ã¢ã®ããŒã¿ãäœã£ãŠããŸãã
ãããŠã
db.session.add(...)
ã§ä¿åãã察象ãšããŠè¿œå ãã
db.session.commit()
ã§å€æŽãããŒã¿ããŒã¹ãžåæ ããŠããŸãã
db.session ã commit() ã®è©³ããä»çµã¿ã¯ãããŒã¿ããŒã¹ãæ±ãææ¥ã§æ¹ããŠæããŸãã
ä»å㯠ãCreateã§ã¯æ°ããããŒã¿ãäœã£ãŠä¿åããŠããã ãšãããèŠãŸãã
ããã«ã¯ã
ShopMemo(...)
ããããŸãã
5æéç®ã§åŠãã ã¯ã©ã¹ãšã€ã³ã¹ã¿ã³ã¹ ãæãåºããŸãã
ãã®ãšãã¯ã
ã¯ã©ã¹ãšã¯ïŒ
ã€ã³ã¹ã¿ã³ã¹ãšã¯ïŒ
ãèŠãŸããã
ä»åã¯ãããã
ãæ°ããã¡ã¢ã®ããŒã¿ãäœãã
ãšããå®éã®åŠçã«ã€ãªãã£ãŠããŸãã
ð¹ãåã«åŠãã ãã€ãæ®éã«åããŠãã
ð¹ ããåé¡â
次ã®ã³ãŒãã¯ãCRUDã®ã©ãã«äžçªè¿ãã§ãããïŒ
db.session.add(
ShopMemo(
title=title,
body=body,
)
)
çããèŠã
Create
æ°ãã ShopMemo ãäœããä¿åãã察象ãšããŠè¿œå ããŠããããã§ãã
â¡ Read â ããŒã¿ãèªã
次㯠Readã
ä¿åãããŠããã¡ã¢ãååŸããŠãäžèЧãšããŠè¡šç€ºããŸãã
ææã®äœæ
shop_memos.py
â
render_memos()
ãŸãã
memo_query = ShopMemo.query.filter_by(
dataset_id=current_dataset.id,
)
ã§ã衚瀺ããã¡ã¢ãæ¢ãããã®åŠçãäœã£ãŠããŸãã
ãã®åŸã
memos = [] if search_is_invalid else memo_query.all()
ã§ããŒã¿ãååŸããŠããŸãã
ããã«ããã
.all()
ã§ã¯ãæ¡ä»¶ã«åãããŒã¿ããŸãšããŠååŸããŠããŸãã
ååŸãã memos ã¯ã
render_template(
template_name,
memos=memos,
...
)
ã®ããã«HTMLåŽãžæž¡ãããŠããŸãã
倧ãŸããªæµããèŠããšã
ããŒã¿ããŒã¹
â
ã¡ã¢ãååŸ
â
Python
â
HTMLãžæž¡ã
â
ç»é¢ã«ã¡ã¢äžèЧã衚瀺ããã
ãšãªã£ãŠããŸãã
ä»åã¯CRUDãèŠãææ¥ãªã®ã§ãSQLAlchemyã® query ã filter_by() ã®è©³çްãŸã§ã¯æããŸããã
ãã®ããããåŸã§ãããŒã¿ããŒã¹ãæ±ãææ¥ãšããŠåŠã³çŽãããéšåã§ãã
ð¹ ããåé¡â¡
åºèã¡ã¢ãéãããšããä¿åæžã¿ã®ã¡ã¢ãäžèЧã§è¡šç€ºãããŸããã
ããã¯CRUDã®ã©ãã§ãããïŒ
çããèŠã
Read
ä¿åãããŠããããŒã¿ãèªã¿åã£ãŠè¡šç€ºããŠããããã§ãã
⢠Update â ããŒã¿ãæŽæ°ãã
次㯠Updateã
ãã§ã«ååšããŠããã¡ã¢ãæžãæããŸãã
ææã®äœæ
shop_memos.py
â
edit_memo()
å®ã³ãŒããèŠããšã
memo.title = title
memo.body = body
memo.updated_at = utc_now()
db.session.commit()
ãšãªã£ãŠããŸãã
ããã¯æ¯èŒçããã®ãŸãŸèªããŸãã
memo.title = title
ã¿ã€ãã«ãæžãæããã
memo.body = body
æ¬æãæžãæããã
memo.updated_at = utc_now()
æŽæ°æ¥æãæžãæããã
ãããŠæåŸã«ã
db.session.commit()
ã§å€æŽãåæ ããŠããŸãã
1æéç®ã§åŠãã ã
倿° = å€
ãšããä»£å ¥ããå®éã®Webã¢ããªã®äžã§ã¯ãããããšããã§ç»å ŽããŸãã
ãã¡ããè£åŽã«ã¯SQLAlchemyããããŸãããPythonã³ãŒããšããŠèŠããšæå€ãšèªããŸãã
ð¹ãUpdateã£ãŠèããšé£ãããã ãã©ãå€ãæžãæããŠãã®ãã
å³2ïŒæ¢åã®ã¡ã¢ãéããç»é¢ã§ããæ¬æã倿Žãããšãè£åŽã§ã¯ååŸããã¡ã¢ã®å å®¹ãæ°ããå€ãžæŽæ°ããŸãã
ð¹ ããåé¡â¢
次ã®ã³ãŒãã¯CRUDã®ã©ãã§ãããïŒ
memo.title = title
memo.body = body
db.session.commit()
çããèŠã
Update
ãã§ã«ååšããŠãã memo ã®å
å®¹ãæžãæããŠããããã§ãã
⣠Delete â ããŒã¿ãåé€ãã
æåŸã¯ Deleteã
ãã ããBakery Hubã®åºèã¡ã¢ã«ã¯å°ãé¢çœããšããããããŸãã
æ®æ®µç»é¢ãããåé€ãããŠãããããªãããŒã¿ãå®å šåé€ããŠããããã§ã¯ãããŸããã
ãŸã ãŽãç®±ãžç§»å ããŸãã
ãŽãç®±ãžç§»ãåŠç
ææã®äœæã¯ã
shop_memos.py
â
move_to_trash()
ã§ãã
å®ã³ãŒããèŠããšã
deleted_at = utc_now()
memo.deleted_at = deleted_at
memo.updated_at = deleted_at
db.session.commit()
ãšãªã£ãŠããŸãã
ããïŒ
db.session.delete(memo)
ããããŸããã
ããã§ã¯ããŒã¿ãã®ãã®ãæ¶ããã
deleted_at
ã«åé€ããæ¥æãå ¥ããããšã§ã
ããã®ã¡ã¢ã¯å逿žã¿ã
ãšããç¶æ ã«ããŠããŸãã
ãã㯠è«çåé€ïŒSoft DeleteïŒ ãšåŒã°ããæ¹æ³ã§ãã
ç»é¢äžã§ã¯ãåé€ãã«èŠããŠããå éšã§æ¬åœã«ããŒã¿ãæ¶ããŠãããšã¯éããŸããã
Bakery Hubã®åºèã¡ã¢ã§ã¯ãéåžžã®å逿äœã§ã¯äžåºŠãŽãç®±ãžç§»åããŸãã
ããã§ãã8æéç®ã§åŠãã None ãåºãŠããŸãã
éåžžã®ã¡ã¢ã§ã¯ã
deleted_at = None
åé€ãããšã
deleted_at = åé€ããæ¥æ
ãšãªããŸãã
ãããŠãŽãç®±ãã埩å ãããšãã¯ã
memo.deleted_at = None
ãžæ»ããŠããŸãã
ð¹ãNoneããŸãåºãŠããã
åã«åŠãã ãã®ããå¥ã®åŠçã§ãå°ããã€ã€ãªãã£ãŠããŸãã
ð¹ ããåé¡â£
次ã®åŠçã§ã¯ãã¡ã¢ã®ããŒã¿ãã®ãã®ãå®å šã«æ¶ããŠããã§ããããïŒ
deleted_at = utc_now()
memo.deleted_at = deleted_at
db.session.commit()
çããèŠã
ãŸã å®å šã«ã¯åé€ããŠããŸããã
deleted_at ã«å逿¥æãå
¥ããŠããå逿žã¿ã®ã¡ã¢ããšããŠæ±ã£ãŠããŸãã
åºèã¡ã¢ã§ã¯ããã®ç¶æ ã®ã¡ã¢ããŽãç®±ã«è¡šç€ºãããŸãã
ã§ã¯ãæ¬åœã®Deleteã¯ã©ãïŒ
ãŽãç®±ã®äžãã å®å šã«åé€ ãããšãã§ãã
ææã®äœæ
shop_memos.py
â
delete_memo()
å®ã³ãŒãã§ãã
db.session.delete(memo)
db.session.commit()
ããã§ã
db.session.delete(memo)
ãç»å ŽããŸãã
ã€ãŸãBakery Hubã§ã¯ã
ç»é¢ããåé€
â
deleted_at ã«æ¥æãå
¥ãã
â
ãŽãç®±ãž
ããã«å®å
šåé€
â
db.session.delete()
â
ããŒã¿ãåé€
ãšãã2段éã«ãªã£ãŠããŸãã
å³3ïŒãŽãç®±ã§ã¯å逿žã¿ã¡ã¢ãšå逿¥æã確èªã§ããŸããã埩å ããããšãå®å šã«åé€ããåãã誀ã£ãŠæ¶ããã¡ã¢ãæ»ããããã«ããŠããŸãã
ð¹ ããåé¡â€
次ã®ã³ãŒãã¯CRUDã®ã©ãã§ãããïŒ
db.session.delete(memo)
db.session.commit()
çããèŠã
Delete
ä»å㯠memo ãå®å
šã«åé€ããåŠçã§ãã
CRUDãåºèã¡ã¢å šäœã§èŠã
ãããŸã§ããŸãšããŸãã
ïŒããæ°ããã¡ã¢ãäœã
â
Create
ã¡ã¢äžèЧã衚瀺ãã
â
Read
ã¡ã¢ãæžãçŽã
â
Update
ãŽãç®±ããå®å
šåé€ãã
â
Delete
ã³ãŒãåŽã§ç°¡åã«èŠããšã
# Create
db.session.add(memo)
# Read
memo_query.all()
# Update
memo.body = body
# Delete
db.session.delete(memo)
ããããã³ãŒãã®åœ¢ã¯éããŸãã
ã§ãç»é¢äžã®æäœãšçµã³ã€ãããšã
äœã®ããã®åŠçãªã®ã
ãå°ãèŠãããããªããŸããã
CRUDãäœã£ãããšãUI/UXãèŠçŽãã
åºèã¡ã¢ããŒã«ã¯ãCRUDãåãã°ããã§å®æãšããããã§ã¯ãããŸããã§ããã
å®éã«ã¹ããŒããã©ã³ã§è§Šã£ãŠã¿ããšã
äžèЧã§ãã£ãšå€ãã®ã¡ã¢ãèŠãã
ã¡ã¢ãéãããããã®ãŸãŸæžããã
åé€ããã¡ã¢ãšéåžžã®ã¡ã¢ãåãããããããã
ãªã©ã䜿ã£ãŠã¿ãŠæ°ã¥ãéšåãåºãŠããŸããã
ããã§ãæè¿ã¯åºèã¡ã¢ã® UI/UXãäœåºŠãèŠçŽããŠããŸãã
ã¡ã¢äžèЧãã³ã³ãã¯ãã«
çŸåšã®ã¹ããŒããã©ã³ç»é¢ã§ã¯ã
- ã¿ã€ãã«
- æ¬æã®äžéš
- æ¥ä»
ãã³ã³ãã¯ããªã«ãŒãã«ãŸãšããŠããŸãã
ä»åã®å³1ã§ã¯ã1ç»é¢ã«5ä»¶ã®ã¡ã¢ã確èªã§ããŸãã
ããã«äžéšã«ã¯ã
- æ€çŽ¢
- æŽæ°æ¥ / äœææ¥ã®äžŠã³æ¿ã
- ãŽãç®±
ã眮ããå³äžã® ïŒãã¿ã³ ããæ°ããã¡ã¢ã远å ã§ããããã«ããŠããŸãã
æ©èœãå¢ããã ãã§ãªãã
ãæ®æ®µäœ¿ããšãã«ãã©ãã«äœããããšåããããããã
ãèããããã«ãªããŸããã
ã¹ããã§ã¯ãã¡ã¢ãæžããããšãäžå¿ã«
å³2ã®ããã«ãã¹ããŒããã©ã³ã§ã¡ã¢ãéããšãããªãã·ã³ãã«ãªç»é¢ã«ãªããŸãã
ã¡ã¢åž³ãšããŠäœ¿ããªãã
ã¿ã€ãã«æ¬ã¯ã©ãïŒ
ä¿åãã¿ã³ã¯ã©ãïŒ
ãšæ¯åèããããããŸãæ¬æãæžããæ¹ã䜿ãããããšèããŸããã
çŸåšã®ã¹ããŒããã©ã³çã§ã¯ãæ¬æããã¿ã€ãã«ãäœããªãããç·šéå 容ãèªåä¿åãã圢ã«ããŠããŸãã
ç»é¢ãšããŠã¯ããªãåçŽã§ããããã®è£åŽã§ã¯ã
å
¥åãã
â
JavaScript
â
Flaskãžéä¿¡
â
ã¡ã¢ãæŽæ°
â
ä¿å
ãšããåŠçããããŸãã
ãã®ãããã¯ãä»åŸ éåæéä¿¡ãJSON ãåŠã¶ãšãã®ææã«ãã§ãããã§ãã
ð¹ãèŠãç®ãç°¡åã«ãªããšãè£åŽãŸã§ç°¡åã«ãªããšã¯éããªãã
ããã¯ç¢ºãã«ããã§ããã
ãŽãç®±ããåé€ããå Žæãã ãã§ã¯ãªããã
ãŽãç®±ã®UIãèŠçŽããŸããã
çŸåšã¯ã
- ãŽãç®±ã«äœä»¶ããã®ã
- ã©ã®ã¡ã¢ãåé€ããã®ã
- ãã€åé€ããã®ã
- 埩å ãã
- å®å šã«åé€ãã
- ãŽãç®±ã空ã«ãã
ãç»é¢äžã§ç¢ºèªã§ããŸãã
ç¹ã«ã
ã埩å ããã
ãš
ãå®å šã«åé€ã
ã¯ãæäœã®æå³ãããªãéããŸãã
ãã®ããããã¿ã³ãåããŠããŸãã
å®å šåé€ãããšãã«ã¯ã
ãã®ã¡ã¢ãå®å šã«åé€ããŸããïŒ
ãšç¢ºèªããŠããåé€ããããã«ããŠããŸãã
CRUDã® Delete ã¯1æåã§ãããå®éã®ã¢ããªã§ã¯ã
åé€ãã
â
ééããŠããªãã
â
æ»ããã®ã
â
æ¬åœã«æ¶ãã®ã
ãŸã§èããå¿ èŠããããŸããã
ããã¯ã³ãŒãã ãèŠãŠãããšãã«ã¯ãããŸãæèããŠããªãã£ãéšåã§ãã
CRUDã¯åºèã¡ã¢ã ãã®è©±ã§ã¯ãªã
ããã§æ°ã¥ããããšããããŸãã
CRUDã¯åºèã¡ã¢ã ãã§ã¯ãããŸããã
Bakery Hubã®å£²äžç®¡çåŽã§ãã
ååãç»é²ãã
â Create
ååãèŠã
â Read
ååæ
å ±ã倿Žãã
â Update
ååãåé€ãã
â Delete
ãšèããããšãã§ããŸãã
çºæ³šãã¿ã¹ã¯ãåãã§ãã
ã€ãŸãCRUDã¯ã
ç¹å®ã®ã¢ããªã ãã§äœ¿ããã®ã§ã¯ãªããããŒã¿ãæ±ãå€ãã®Webã¢ããªã«å ±éããåºæ¬
ãšããããšã«ãªããŸãã
ã¡ã¢åž³ãTODOã¢ããªãåå¿è åãææãšããŠããç»å Žããçç±ããå°ãåãã£ãæ°ãããŸãã
å°ããæ©èœã®äžã«ãWebã¢ããªã®åºæ¬ããŸãšãŸã£ãŠããããã§ãã
Guest Demoã§ãè§ŠããŸã
ä»å䜿ã£ãåºèã¡ã¢ããŒã«ã¯ãBakery Hubã®Guest Demoããå®éã«è§Šãããšãã§ããŸãã
èšäºãèªãã ããšã«ã
5ä»¶ãããã¡ã¢ãäœã£ãŠã远å ã»è¡šç€ºã»ç·šéã»åé€ã詊ããŠã¿ãŠãã ããã
äŸãã°ã
æ°ããã¡ã¢ã远å ãã
â
äžèЧã«è¡šç€ºããã
ã¡ã¢ãéããŠå
容ã倿Žãã
â
äžèŠ§ãžæ»ã£ãŠç¢ºèªãã
ã¡ã¢ããŽãç®±ãžç§»ã
â
ãŽãç®±ãéã
埩å
ããŠã¿ã
â
ããäžåºŠãŽãç®±ãžç§»ã
å®å
šã«åé€ãã
ãšè§Šã£ãŠã¿ããšãä»åã®CRUDãç»é¢äžã§ã確èªã§ããŸãã
Guest Demo
https://bakery-salesdata.onrender.com/
Guest Demoã«ã¯ãå人æ å ±ã»æ©å¯æ å ±ã»å®éã®ããŒã¿ãªã©ã¯å ¥ããªãã§ãã ããã
確èªçšãšããŠãæ¶ç©ºã®ã¡ã¢ããã¹ãçšããŒã¿ã§è©ŠããŠãã ããã
å®éã«ç»é¢ãæäœããããšã§ã³ãŒããèŠããšã
ð¹ããã£ãæŒãããã¿ã³ã®è£ã§ããããåããŠãã®ãã
ãšå°ãèŠãæ¹ãå€ãããããããŸããã
1ã8æéç®ã§åŠãã ãã®ãæ¶ããŠããªã
ä»åCRUDãšããæ°ããèãæ¹ãèŠãŸããããã³ãŒãã®äžã«ã¯ãããŸã§åŠãã Pythonåºç€ãæ®éã«æ®ã£ãŠããŸãã
ããšãã°ã
if validation_error is not None:
ã«ã¯8æéç®ã® None ãš is notã
title = raw_title.strip()
ã«ã¯7æéç®ã® strip()ã
ShopMemo(...)
ã«ã¯5æéç®ã®ã¯ã©ã¹ãšã€ã³ã¹ã¿ã³ã¹ã
ãããŠã
def create_memo():
ã«ã¯3æéç®ã®é¢æ°ããããŸãã
æ°ããããšãåŠã¶ãã³ã«ãåã«åŠãã ãã®ãäžèŠã«ãªãããã§ã¯ãããŸããã
å®éã®ã¢ããªã§ã¯ãããã€ãã®åºç€ãçµã¿åããã£ãŠ1ã€ã®æ©èœã«ãªã£ãŠããŸãã
1ã8æéç®ã¯ããããèªãããã®æºåã§ããã£ãã®ãããããŸããã
ð¹ããããããã¹ã¿ãŒãã©ã€ã³ã ã
ãã£ã±ãèšãããŸããã
ä»ååŠãã ããš
CRUD
ããŒã¿ãæ±ãåºæ¬æäœããŸãšããèãæ¹ã§ãã
Create
Read
Update
Delete
Create
æ°ããããŒã¿ãäœãã
Bakery Hubã§ã¯ã
db.session.add(...)
ãªã©ãç»å ŽããŸããã
Read
ä¿åãããŠããããŒã¿ãååŸããã
memo_query.all()
ã§ã¡ã¢ãååŸããŠããŸããã
Update
ãã§ã«ååšããããŒã¿ãæžãæããã
memo.title = title
memo.body = body
ã®ãããªåŠçããããŸããã
Delete
ããŒã¿ãåé€ããã
å®å šåé€ã§ã¯ã
db.session.delete(memo)
ã䜿ãããŠããŸãã
ãŸãåºèã¡ã¢ã§ã¯ãããå®å
šåé€ãããdeleted_at ã䜿ã£ãŠäžåºŠãŽãç®±ãžç§»ãåŠçããããŸããã
ãããã«
ä»åã¯ãåºèã¡ã¢ããŒã«ãææã«ã㊠CRUD ãèŠãŠã¿ãŸããã
ãããŸã§ã®ææ¥ã§ã¯ã
ãã®Pythonã³ãŒãã¯äœãæå³ããŠããã®ãïŒ
ãäžå¿ã«èŠãŠããŸããã
ä»åã¯ããããäžæ©é²ãã§ã
ãã®ã³ãŒãã¯Webã¢ããªã®äžã§äœã®åœ¹å²ãæã£ãŠããã®ãïŒ
ãèŠãææ¥ã«ãªããŸããã
ããã«ãCRUDãå®è£ ããããšã«ãã
ãåããããã䜿ããããããž
UI/UXãäœåºŠãçŽããŠããŸããã
ãã¡ããä»ååºãŠããã
- SQLAlchemy
db.session- ããŒã¿ããŒã¹
- Flaskã®route
- GET / POST
- è«çåé€
- JavaScript
- éåæéä¿¡
ãªã©ãããã¹ãŠçè§£ããããã§ã¯ãããŸããã
åèªèº«ããŸã åãããªãããšã¯å€§éã«ãããŸãã
ã ããä»åãã
CRUDãšããèšèã1èšäºã§å®å šã«çè§£ããããš
ã§ã¯ãªãã
Bakery Hubã®äžã§å®éã«ã©ã䜿ãããç»é¢ã«ã€ãªãã£ãŠããã®ããäžåºŠç¢ºèªã§ããããš
ã倧äºã«ããããšæããŸãã
ãããããã¢ããªã®ã³ãŒããèªã¿ãªããã
ð¹ãããäœãã£ãŠããã ïŒã
ãšãªã£ããšãããæã£ãŠãããŸãã
ðïž åºç€åŠç¿ã·ãªãŒãº
ð«1æéç®
ã倿°ã»ããŒã¿åã»æ¯èŒæŒç®åã»ifæãšã¯ïŒã
ð«2æéç®
ããªã¹ãã»èŸæžã»setã»foræãšã¯ïŒã
ð«3æéç®
ã颿°ã»åŒæ°ã»returnã»é¢æ°ã®åŒã³åºãã»åãã³ããšã¯ïŒã
ð«4æéç®
ãã¢ãžã¥ãŒã«ã»importã»äŸå€ã»tryã»exceptãšã¯ïŒã
ð«5æéç®
ãã¯ã©ã¹ã»ã€ã³ã¹ã¿ã³ã¹ã»initã»selfã»å±æ§ãšã¯ïŒã
ð«6æéç®
ãfæååã»ã¢ã³ããã¯ã»ãªã¹ãå å 衚èšã»joinãšã¯ïŒã
ð«7æéç®
ãstripã»lenã»splitlinesã»ã¹ã©ã€ã¹ãšã¯ïŒã
ð«8æéç®
ãNoneã»isã»is notã»isinstanceãšã¯ïŒã
ð«9æéç®
ãCRUDã»Createã»Readã»Updateã»Deleteãšã¯ïŒã



