-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
АПИ для креш-курса на python #1
base: master
Are you sure you want to change the base?
Conversation
@@ -0,0 +1,12 @@ | |||
[flake8] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай добавил в README.md блок с описанием вспомогательных вещей, типо вот линтер, он нужен для того-то того-то, вот так его можно запустить, а вот в этой файле он конфигурируется. И пример как его запустить. И аналогично для mypy.
requirements.txt
Outdated
@@ -0,0 +1,14 @@ | |||
django |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай зафиксируем версии, чтобы код всегда был актуальный, а то через 10 лет поставим django 28 версии)
# Database | ||
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases | ||
|
||
DATABASES = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю для этого проекта использовать sqlite, тогда не нужно будет ничего отдельно поднимать, ни докер ни базу. Кажется для учебного проекта это норм.
users/models.py
Outdated
db_table = "role_operations" | ||
|
||
role = models.CharField(max_length=30, choices=Roles.choices, default=Roles.USER) | ||
operations = ArrayField(models.CharField(max_length=30, choices=Operations.choices)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ArrayField надо будет заменить при переходе на sqlite
|
||
|
||
if __name__ == "__main__": | ||
main() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
После того как поправишь эти штуки, давай знаешь как сделаем, поместим этот проект в текущем виде в папку solved
, как эталонное решение. Потом конечно его ещё будет допиливать, но пока так.
В итоге в проекте будут 2 папки (task
и solved
) и файл README.md
В папке task
нужно сделать только первое задание с примером. Например можно вот как:
сделать API с получением одной организации по id (GET запрос) а в задании попросить пользователя сделать тоже самое для сотрудника (тоже GET запрос по id). А всё остальное пока убрать чтобы не смущало, лишние поля, сваггер, может даже сделать это без DRF, а в стандартной джанге без всяких серриалайзеров и т.д. А дальше будет постепенно усложнять.
Создал пользователей(сотрудников) и организации, для организаций написал небольшое апи на drf
документацию можно посмотреть по /swagger