Używam szablonów CherryPy, Mako i SQLAlchemy w aplikacji internetowej. Pochodzę z tła Ruby on Rails i próbuję ustawić poprawność danych dla moich modeli. Nie mogę znaleźć najlepszego sposobu na zapewnienie, powiedzmy, że pole "nazwa" ma wartość, gdy inne pole ma wartość. Próbowałem użyć SAValidation, ale to pozwoliło mi utworzyć nowe wiersze, w których wymagana kolumna była pusta, nawet gdy użyłem validates_presence_of
w kolumnie. Patrzyłem na WTForms, ale wydaje się, że wiąże się to z dużym powieleniem kodu - już mam ustawioną klasę modelu z kolumnami w tabeli, dlaczego muszę powtórzyć wszystkie te kolumny ponownie, aby powiedzieć "hej to ktoś potrzebuje wartości "? Pochodzę ze sposobu myślenia "skinny controller, fat model" i szukałem metod podobnych do Railsów w moim modelu, takich jak validates_presence_of
lub validates_length_of
. Jak powinienem sprawdzać poprawność danych, które otrzymuje mój model, i upewnić się, że niepowodzenie Session.add
/Session.merge
kończy się niepowodzeniem?sprawdzanie poprawności danych dla modeli deklaratywnych SQLAlchemy
Odpowiedz
Ostatecznie skończyłem używać WTForms.
Zapoznaj się z dokumentacją dodawania validation methods. Możesz po prostu dodać metodę "aktualizacji", która przyjmuje polecenie POST, upewnia się, że wymagane klucze są obecne, i używa udekorowanych walidatorów, aby ustawić wartości (podnosząc błąd, jeśli coś jest nie tak).
Metody sprawdzania poprawności działają tylko dla jednego pola naraz. Oczywiście oznacza to walidację, która zależy od relacji między polami. –
Napisałem SAValidation w celu uniknięcia duplikacji kodu, jeśli chodzi o sprawdzanie danych modelu. Działa to dobrze dla nas, przynajmniej dla naszych przypadków użycia.
W naszych testach mamy examples of the model's setup i testy pokazujące działanie sprawdzania poprawności.
- 1. Scal wiele deklaratywnych baz w SQLAlchemy
- 2. Jak usunąć sprawdzanie poprawności danych?
- 3. Sprawdzanie poprawności sprawdzania poprawności Knockout sprawdzanie poprawności
- 4. Sprawdzanie poprawności JQuery: Sprawdzanie poprawności ukrytych pól
- 5. Sprawdzanie poprawności cakephp z obu modeli i kontrolera
- 6. sanityzacja danych wejściowych sprawdzanie poprawności VS
- 7. Sprawdzanie poprawności danych w sklepie Redux
- 8. Sprawdzanie poprawności formularza HTML 5 dla danych wejściowych datetime-local
- 9. Adnotacje danych ASP.NET MVC Sprawdzanie poprawności ErrorMessageResourceType
- 10. Sprawdzanie poprawności danych wprowadzanych przez użytkownika lub
- 11. Wyłącz sprawdzanie poprawności dla niektórych pól
- 12. Sprawdzanie poprawności dla dużych plików po przesłaniu
- 13. Optymalizacje SqlAlchemy dla modeli obiektów tylko do odczytu
- 14. sprawdzanie poprawności FCKeditora
- 15. Rails ActiveRecord sprawdzanie poprawności dla zmiennych nieobowiązkowych
- 16. Sprawdzanie poprawności JavaScriptu dla formularzy Symfony 2
- 17. Sprawdzanie poprawności profilu java dla wszystkich zależności
- 18. Sprawdzanie poprawności sprawdzania poprawności natychmiast po załadowaniu
- 19. Sprawdzanie poprawności ukrytego pola
- 20. Sprawdzanie poprawności okna dialogowego
- 21. Co to jest powiązanie danych deklaratywnych?
- 22. Sprawdzanie poprawności hasła jQuery
- 23. Sprawdzanie poprawności moich pieniędzy
- 24. Sprawdzanie poprawności hasła FOSUserBundle
- 25. Sprawdzanie poprawności pliku WADL
- 26. Sprawdzanie poprawności liczb dziesiętnych
- 27. Sprawdzanie poprawności modelu szkieletowego
- 28. sprawdzanie poprawności schematu XML
- 29. Sprawdzanie poprawności mojego formularza
- 30. sprawdzanie poprawności django
Jak obejść duplikat kodu? Czy możesz wyjaśnić nieco, w jaki sposób go używasz? Jestem również programistą rails, ale chciałbym rozwinąć aplikację z kolbą + sqlalchemy ... Widziałem WTForms, ale wydaje mi się to trochę obce, ponieważ zawsze przechowujesz walidację w widoku ... podczas gdy czuje się bardziej odpowiedni (i bardziej suchy) do przechowywania go w modelu. – jbwiv