Pull to refresh
75
0.2

Пользователь

Send message
Джанговская админка обычно всех устраивает и там есть всё что угодно из коробки или на pypi. И кастомизируется как угодно.
Во многих проектах стараются их избегать. Потому что уйдет человек, которых их писал и это очень тяжело поддерживать. И с версионированием этого всего как-то непонятно. И удобнее когда вся логика в одном месте — в приложении.
Просто годная библиотека для сериализации. Кстати, я тут сделал генераторы маршмаллов из моделей peewee и алхимии, может кому пригодится
github.com/pawnhearts/aiorf/blob/master/aiorf/modelschema.py
github.com/pawnhearts/aiorf/blob/master/aiorf/saschema.py
Мне больше нравится pydantic. У себя я превращаю аргументы функции в параметры запроса так:
from pydantic import create_model
def get_query_schema(handler):
    params = inspect.signature(handler).parameters
    query_params = {k: (p.annotation, p.default) for k, p in params.items() if k not in ('pk', 'request', 'self')}
    return create_model('query_schema', **query_params)

это можно использовать потом в декораторе или middleware
@web.middleware
async def webapi_validate_query(request, handler):
    self = handler.__closure__[0].cell_contents.__self__
    if request.method not in ('GET', 'POST', 'PUT', 'DELETE'):
        raise web.HTTPMethodNotAllowed(f'{request.method} not allowed')
    query = request.query.copy()
    if self.paginator:
        self.paginator.get_page_from_query(query)
    if self.filter_class:
        self.filter = self.filter_class(**request.query)
    validated_query = self.query_schema(**query.items()).dict()
    result = await handler(request, **request.match_info, **validated_query)
    return web.json_response(result, dumps=dumps)
Админкой пользуются не только люди, которые умеют с бд клиентом работать. Кроме того в таких приложениях часто присутствует какая-то логика помимо просто записей в базе и не на уровне бд.
Есть pyenv. Есть pipenv/poetry. Можно активизировать pyenv и виртуальное окружение при переходе в каталог.
Я использую vim mode в idea. Кот жив.
Нафиг это фласк в 2019. Тогда уж лучше просто drf взять.
Есть aiomongo и aiohttp. Вот пример api на нем dev.to/apcelent/how-to-create-rest-api-using-aiohttp-54p1
> Как вы подходите к проектированию HTTP-API в своих Python-проектах?
Обертка над aiohttp, входные парамертры проверяются и объекты бд сериализуются с помощью mashmallow или pydantic.
Наверное скоро приведу в порядок и опубликую.
FastApi офигенный фреймворк для веб апи вот пример github.com/tiangolo/full-stack-fastapi-postgresql/tree/master/%7B%7Bcookiecutter.project_slug%7D%7D может и в асинхронщину.
marshmallow, trafaret, pydantic для валидации схемы.
pipenv уж очень тормозной. poetry побыстрее, но тоже как то не очень и не так популярна. ждем когда запилят __pypackages__ с pyenv этого будет достаточно
В питоне строгая типизация вообще-то
Я думал автогенерация документации и всяких swagger`ов — стандартная фича любого rest фреймворка. В любом случае есть же какой-то сериализатор/валидатор входных данных. И сериализатор выходных, надо же как-то данные из бд преобразовывать в json. В них достаточно данных для создания доков плюс докстринги.

github.com/marshmallow-code/apispec github.com/maximdanilchenko/aiohttp-apispec www.django-rest-framework.org/topics/documenting-your-api (и у каждого поля есть www.django-rest-framework.org/api-guide/fields/#help_text с описанием)
Есть mypyc. Компилирует код с аннотациями. Вообще, производительность программиста улучшает тоже, позволяет ловить ошибки, которые иначе всплыли бы только в рантайме и их пришлось бы искать.
Я вот сделал как-то колонку под инн integer'ом. Потом начал ловить глюки, что некоторые заведомо валидные инн не проходили валидацию — посмотрел на них, оказалось есть инн начинающиеся с нуля и он «съедался».
У меня роутер Zyxel Keenetic Giga II. Он позволяет расшаривать подключенные к нему диски через SMB и DLNA, плюс ftp. Ещё на нем bittorrent клиент есть. Всё из коробки.
Мне кажется такие простые фичи в интерфейсе, на которые жалуется автор топика реализуются за вечер.
Файрвол может быть не на этом же компьютере, а на роутере.
Аналогично. А ещё сам firefox же сначала назывался phoenix, потом firebird, а потом только firefox.
> 1. В Крыму холоднее, чем, например, в Азии.
Там, достаточно тепло большую часть года. Вообще снег-редкость, зато довольно противный ветер, да.
> 2. Ощущение России 90х.
Отчасти да, но для меня важнее природа, очень красиво же.
> 3. Дороже, чем в Азии.
Но дешевле, чем в РФ и Европе.
> Стоимость перелета
Я платил около 3000руб за билеты(за одного, в один конец). Довольно недорого, намного дешевле, чем было пару лет назад(были цены более 10000 руб за билет, можно было найти дешевле, но это исключение)
> ожидается
Пока что такого нет. Незнаю, что ожидается, очень в политике разбираюсь. Зато есть возможность купить недвижимость за доступные(по меркам жителя столиц) деньги.

Information

Rating
2,775-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity