docs: def make_request_parser(model_or_inst, excludes=None, only=None, for_populate=False):
      """Pass a `model class` or `model instance` to this function,
       then, it will generate a `RequestParser` that extract user request data from `request.json`
       according to the model class's definition.
  
      Parameter `excludes` and `only` can be `str` or list of `str`,
       then are used to specify which columns should be handled.
      If you passed `excludes` and `only` at same time, only `excludes` will be used.
      And, the primary key of the model will not be added to `RequestParser`'s argument list,
       unless you explicitly specify it use `only` parameter.
  
      If you pass in a model class, but not a model instance, the function will doing `required` checking,
       for columns that nullable=False.
      (If you pass in a model instance, the `required` checking will not proceed. Because in this situation,
       we should allow the user to ignore the assignment to a field)
      """
      is_inst = _is_inst(model_or_inst)
  
      if isinstance(excludes, six.string_types):
          excludes = [excludes]
      if excludes and only:
          only = None
      elif isinstance(only, six.string_types):
          only = [only]
  
      parser = RequestPopulator() if for_populate else reqparse.RequestParser()
      for col in model_or_inst.__table__.columns:
          if only:
              if col.name not in only:
                  continue
          elif (excludes and col.name in excludes) or col.primary_key:
                  continue
  
          col_type = col.type.python_type
          kwargs = {
              "type": _type_dict.get(col_type.__name__, col_type) if hasattr(col_type, '__name__') else col_type
          }
          # When the context was to creating a new model instance, if a field has no default value, and is not nullable,
          #  mark it's corresponding argument as `required`.
          # 创建新数据库实例时，若一个字段既没有默认值，又不允许 NULL，则把它对应 arg 设为 required
          if not is_inst and col.default is None and col.server_default is None and not col.nullable:
              kwargs["required"] = True
          parser.add_argument(col.name, **kwargs)
      return parser