
рдореБрдЭреЗ Django рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ Django ORM, Django рдЯреЗрдореНрдкреНрд▓реЗрдЯ, Django рдлреЙрд░реНрдо рдФрд░ рдХрдИ рдФрд░ рдЪреАрдЬрд╝реЗрдВ Django рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди Django рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рд╛рдн рд╣реИ - рдХрдИ рдЙрдкрдпреЛрдЧ Django, рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЕрдЬрдЧрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ django рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреА рдХрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП SQLAlchemy рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
Django ORM рдХреА рддреБрд▓рдирд╛ рдореЗрдВ SQLAlchemy рдореЗрдВ рдмреЗрд╣рддрд░ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдореБрдЦреНрдп рдкреНрд░рд╢реНрди рд╣реИ рдЬреЛ рдореИрдВ Django рдХреЗ рджреЛрд╕реНрддреЛрдВ
1 рд╕реЗ рд╕реБрдирддрд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рд╣реИ - SQLAlchemy рдХрд┐рд╕реА рднреА SQL рдХреНрд╡реЗрд░реА (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, 80-90%) рдХреЛ Django ORM рдХреЗ рд╡рд┐рдкрд░реАрдд рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЪреАрдЬреЗрдВ рд╡реНрдпрдХреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдФрд░ рдХреБрдЫ Django рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирдХ ORM рдЕрдХреНрд╖рдо рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ рдХрд┐ Django ORM рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдЖрдк рд╢реБрджреНрдз SQL рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ SQLAlchemy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╢реБрджреНрдз рдПрд╕рдХреНрдпреВрдПрд▓ рдЦреБрдж рдбреАрдЖрд░рд╡рд╛рдИ рдлрд┐рдХреНрд╢рди рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдзрд╛рд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
SQLAlchemy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реИрдВ? рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ SQLAlchemy рдФрд░ Django ORM рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдРрд╕реА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдереАред рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реВрдХреНрд╖реНрдо рдХреНрд╖рдг рддрдм рдкреЙрдк рдЕрдк рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреБрдж рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛ рд▓рд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ рдПрд▓реНрджрдЬрдореА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ django рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдмрдирд╛рдпрд╛ред
рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ INSTALLED_APPS рдХреЗ рдЕрдВрдд рдореЗрдВ `aldjemy` рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ aldjemy рд╕рднреА рдореЙрдбрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП` sa` рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВред
рдЪрд▓рд┐рдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ ред/manage.py shell_plus рдФрд░ рдЯрд╛рдЗрдк рдХрд░реЗрдВ:
User.sa.query.join(User.sa.user_groups).join(User.sa.user_groups.property.mapper.class_.group).filter(Group.sa.name=="GROUP_NAME")
, join- ? , SQLA, SQLA join- . , SQLA ? ! SQLA , , , тАФ , , .
github.
PyPi:
pip install aldjemy
1. Django guys , Django. тАФ Dj-.
: But aldjemy is not positioned as Django ORM drop-in replacement. Its helper for special situations.,
habrahabr.ru/blogs/python/128052/#comment_4231276