34 lines
879 B

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. from pydantic import BaseModel,Field
  2. from typing import Annotated
  3. # Token相关的模型
  4. class Token(BaseModel):
  5. access_token: str
  6. token_type: str
  7. class TokenData(BaseModel):
  8. username: str = None
  9. # User相关的模型
  10. class User(BaseModel):
  11. username: Annotated[str,Field(
  12. title="用户",
  13. examples=["admin"],
  14. pattern=r'^.{4,20}$',
  15. description="允许4-20的字符"
  16. )]
  17. email: Annotated[str,Field(
  18. examples=["examples@example.com"],
  19. max_length=50,
  20. pattern=r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$',
  21. description="邮箱需要满足正则标准"
  22. )]
  23. full_name: Annotated[str,Field(
  24. examples=["admin"],
  25. pattern=r'^.{2,20}$',
  26. description="允许2-20个字符"
  27. )]
  28. disabled: bool = True
  29. class UserInDB(User):
  30. hashed_password: str = None