Я использую библиотеку Peewee в Python, и я хочу проверить, существует ли запрос. Я не хочу создавать запись, если она не существует, поэтому я не хочу использовать get_or_create. Должно быть лучшее решение, чем использовать try/except с get, но я ничего не вижу. Пожалуйста, дайте мне знать, если есть лучший способ. Благодарю.проверить, существует ли запрос с использованием peewee
2
A
ответ
13
Вы можете использовать .exists()
:
query = User.select().where(User.username == 'charlie')
if query.exists():
# A user named "charlie" exists.
cool()
http://docs.peewee-orm.com/en/latest/peewee/api.html?highlight=exists#SelectQuery.exists
2
В качестве альтернативы, если вы хотите, чтобы проверить, например, другая таблица ссылается на эту запись, вы можете использовать предложение WHERE EXISTS (subquery)
. Она не поддерживается изначально на Peewee, но она может быть легко построены:
subquery = Child.select(Param('1')).where(Child.parent == Parent.id)
parents_with_children = Parent.select().where(
Clause(SQL('EXISTS'), subquery))
Это эквивалентно следующему SQL:
SELECT * FROM parent
WHERE EXISTS (SELECT 1 FROM child
WHERE child.parent_id = parent.id);
Здесь я использовал SELECT 1
для подзапроса, чтобы избежать извлечения ненужной информации (например, child.id
). Не уверен, что такая оптимизация действительно необходима.
Смежные вопросы
- 1. Peewee insert, если не существует
- 2. Проверить, существует ли таблица с использованием JDBC
- 3. проверить, существует ли каталог с использованием FTPClient
- 4. Экспресс: запрос, чтобы проверить, существует ли документ
- 5. Реляционное сопоставление с использованием Peewee
- 6. Как проверить, существует ли запись с использованием JPA
- 7. Запрос в python peewee с использованием комбинации полей
- 8. Подсчет числа соединенных таблиц с использованием Peewee
- 9. Проверить, существует ли атрибут
- 10. проверить, существует ли URI?
- 11. проверить, существует ли значение
- 12. Проверить, существует ли таблица
- 13. проверить, существует ли продукт
- 14. проверить, существует ли пароль_hash
- 15. проверить, существует ли класс
- 16. Проверить, существует ли файл
- 17. проверить, существует ли таблица
- 18. Проверить, существует ли опция
- 19. Как проверить, существует ли пара с использованием HQL в запросе?
- 20. проверить, существует ли объект с использованием строки поля
- 21. Как проверить, существует ли значение в массиве с использованием PHP
- 22. Как проверить, существует ли файл с использованием шаблонов?
- 23. Как проверить, существует ли документ couchdb с использованием python
- 24. Проверить, существует ли событие с использованием графика api facebook
- 25. Как проверить, существует ли существующее соединение MongoDB с использованием мангуста?
- 26. Как проверить, существует ли файл с использованием значений parm?
- 27. Как проверить, существует ли внутренний URI с использованием Zend Framework?
- 28. Рекурсивно проверить, существует ли функциональный метод с использованием шаблона
- 29. Redis - проверить, существует ли ключ с использованием predis
- 30. Как проверить, существует ли метод с использованием Rspec?
Есть ли что-то не так с попыткой/исключением подхода? – taesu
Не кажется очень изящным. – calthoff