Skip to content

Commit

Permalink
fix #50 前端axios请求头参数位置错误,创建接口排除未设置字段参数
Browse files Browse the repository at this point in the history
  • Loading branch information
zy7y committed May 1, 2024
1 parent a0e7be1 commit 40f2329
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 50 deletions.
2 changes: 1 addition & 1 deletion dfs_generate/conversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ def model(self):

def dao(self):
imports = {
"from sqlmodel import Session, SQLModel,select, func, Field",
"from sqlmodel import Session,select, func",
"from typing import List, Optional",
"import model",
"import schema",
Expand Down
16 changes: 7 additions & 9 deletions dfs_generate/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class PageParam(BaseModel):

SQLMODEL_DAO = """
def create(session: Session, obj_in: schema.{table}) -> model.{table}:
obj = model.{table}(**obj_in.dict())
obj = model.{table}(**obj_in.model_dump(exclude_unset=True))
session.add(obj)
session.commit()
session.refresh(obj)
Expand All @@ -56,7 +56,7 @@ def query_by_id(session: Session, id: int) -> Optional[model.{table}]:
def update(session: Session, id: int, obj_in: schema.{table}) -> Optional[model.{table}]:
obj = query_by_id(session, id)
if obj:
for field, value in obj_in.dict(exclude_unset=True).items():
for field, value in obj_in.model_dump(exclude_unset=True).items():
setattr(obj, field, value)
session.add(obj)
session.commit()
Expand Down Expand Up @@ -163,7 +163,7 @@ def delete_${router_name}_by_id(id: int) -> schema.Result[schema.$table]:

TORTOISE_DAO = """
async def create(obj_in: schema.{table}) -> model.{table}:
obj = model.{table}(**obj_in.dict())
obj = model.{table}(**obj_in.model_dump(exclude_unset=True))
await obj.save()
return obj
Expand All @@ -173,7 +173,7 @@ async def query_by_id(id: int) -> Optional[model.{table}]:
async def update(id: int, obj_in: schema.{table}) -> Optional[model.{table}]:
obj= await query_by_id(id)
if obj:
for field, value in obj_in.dict(exclude_unset=True).items():
for field, value in obj_in.model_dump(exclude_unset=True).items():
setattr(obj, field, value)
await obj.save()
return obj
Expand Down Expand Up @@ -294,7 +294,7 @@ async def delete_${router_name}_by_id(id: int) -> schema.Result[schema.$table]:
/**
* dfs-generate 生成FastAPI Tortoise ORM / SQLModel、Vue3 CRUD代码
* dfs-generate Github: https://github.com/zy7y/dfs-generate
* Vue CRUD代码基于fast-crud,更多用法请查看其官方文档 http://fast-crud.docmirror.cn/
* Vue CRUD代码基于fast-crud,更多用法请查看其官方文档 http://fast-crud.docmirror.cn/
*/
import { AddReq, DelReq, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
import axios from "axios";
Expand All @@ -319,8 +319,7 @@ async def delete_${router_name}_by_id(id: int) -> schema.Result[schema.$table]:
};
};
export const editRequest = async ({ form, row }: EditReq) => {
const res = await axios.patch(url + "/" + row.id, {
data: form,
const res = await axios.patch(url + "/" + row.id, form, {
headers: {
"Content-Type": "application/json"
}
Expand All @@ -333,8 +332,7 @@ async def delete_${router_name}_by_id(id: int) -> schema.Result[schema.$table]:
};
export const addRequest = async ({ form }: AddReq) => {
const res = await axios.post(url, {
data: form,
const res = await axios.post(url, form, {
headers: {
"Content-Type": "application/json"
}
Expand Down
31 changes: 19 additions & 12 deletions docs/sqlmodel/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import model
import schema
from sqlmodel import Field, Session, SQLModel, func, select
from sqlmodel import Session, func, select


def create(session: Session, obj_in: schema.SysMenu) -> model.SysMenu:
obj = model.SysMenu(**obj_in.dict())
obj = model.SysMenu(**obj_in.model_dump(exclude_unset=True))
session.add(obj)
session.commit()
session.refresh(obj)
Expand All @@ -17,11 +17,12 @@ def query_by_id(session: Session, id: int) -> Optional[model.SysMenu]:
return session.get(model.SysMenu, id)


def update(session: Session, id: int,
obj_in: schema.SysMenu) -> Optional[model.SysMenu]:
def update(
session: Session, id: int, obj_in: schema.SysMenu
) -> Optional[model.SysMenu]:
obj = query_by_id(session, id)
if obj:
for field, value in obj_in.dict(exclude_unset=True).items():
for field, value in obj_in.model_dump(exclude_unset=True).items():
setattr(obj, field, value)
session.add(obj)
session.commit()
Expand All @@ -39,11 +40,17 @@ def delete_by_id(session: Session, id: int) -> Optional[model.SysMenu]:

def count(session: Session, **kwargs) -> int:
return session.scalar(
select(func.count()).select_from(model.SysMenu).filter_by(**kwargs))


def query_all_by_limit(session: Session, page_number: int, page_size: int,
**kwargs) -> List[model.SysMenu]:
stmt = select(model.SysMenu).filter_by(**kwargs).offset(
(page_number - 1) * page_size).limit(page_size)
select(func.count()).select_from(model.SysMenu).filter_by(**kwargs)
)


def query_all_by_limit(
session: Session, page_number: int, page_size: int, **kwargs
) -> List[model.SysMenu]:
stmt = (
select(model.SysMenu)
.filter_by(**kwargs)
.offset((page_number - 1) * page_size)
.limit(page_size)
)
return session.exec(stmt).all()
19 changes: 11 additions & 8 deletions docs/sqlmodel/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,17 @@ def query_sys_menu_by_id(id: int) -> schema.Result[schema.SysMenu]:


@sys_menu.get("", summary="分页条件查询")
def query_sys_menu_all_by_limit(query: schema.SysMenu = Depends(),
page: schema.PageParam = Depends()
) -> schema.PageResult[schema.SysMenu]:
def query_sys_menu_all_by_limit(
query: schema.SysMenu = Depends(), page: schema.PageParam = Depends()
) -> schema.PageResult[schema.SysMenu]:
with Session(engine) as session:
total = dao.count(session, **query.model_dump(exclude_none=True))
data = dao.query_all_by_limit(session,
**query.model_dump(exclude_none=True),
page_number=page.page_number,
page_size=page.page_size)
data = dao.query_all_by_limit(
session,
**query.model_dump(exclude_none=True),
page_number=page.page_number,
page_size=page.page_size,
)
return schema.PageResult.ok(data=data, total=total)


Expand All @@ -34,7 +36,8 @@ def create_sys_menu(instance: schema.SysMenu) -> schema.Result[schema.SysMenu]:

@sys_menu.patch("/{id}", summary="更新数据")
def update_sys_menu_by_id(
id: int, instance: schema.SysMenu) -> schema.Result[schema.SysMenu]:
id: int, instance: schema.SysMenu
) -> schema.Result[schema.SysMenu]:
with Session(engine) as session:
return schema.Result.ok(dao.update(session, id, instance))

Expand Down
28 changes: 14 additions & 14 deletions docs/sqlmodel/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pydantic import BaseModel, Field
from pydantic.alias_generators import to_camel

T = TypeVar('T')
T = TypeVar("T")


class Result(BaseModel, Generic[T]):
Expand Down Expand Up @@ -38,17 +38,17 @@ class PageParam(BaseModel):


class SysMenu(BaseModel):
id: Optional[int] = Field(None, description='主键')
status: Optional[int] = Field(None, description='状态 1有效 9 删除 5选中')
created: Optional[datetime] = Field(None, description='创建时间')
modified: Optional[datetime] = Field(None, description='更新时间')
name: Optional[str] = Field(None, description='名称')
icon: Optional[str] = Field(None, description='菜单图标')
path: Optional[str] = Field(None, description='菜单url')
type: Optional[int] = Field(None, description='菜单类型 0目录 1组件 2按钮 3数据')
component: Optional[str] = Field(None, description='组件地址')
pid: Optional[int] = Field(None, description='父id')
identifier: Optional[str] = Field(None, description='权限标识 user:add')
api: Optional[str] = Field(None, description='接口地址')
method: Optional[str] = Field(None, description='接口请求方式')
id: Optional[int] = Field(None, description="主键")
status: Optional[int] = Field(None, description="状态 1有效 9 删除 5选中")
created: Optional[datetime] = Field(None, description="创建时间")
modified: Optional[datetime] = Field(None, description="更新时间")
name: Optional[str] = Field(None, description="名称")
icon: Optional[str] = Field(None, description="菜单图标")
path: Optional[str] = Field(None, description="菜单url")
type: Optional[int] = Field(None, description="菜单类型 0目录 1组件 2按钮 3数据")
component: Optional[str] = Field(None, description="组件地址")
pid: Optional[int] = Field(None, description="父id")
identifier: Optional[str] = Field(None, description="权限标识 user:add")
api: Optional[str] = Field(None, description="接口地址")
method: Optional[str] = Field(None, description="接口请求方式")
model_config = {"alias_generator": to_camel, "populate_by_name": True}
12 changes: 6 additions & 6 deletions docs/tortoise-orm/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


async def create(obj_in: schema.SysMenu) -> model.SysMenu:
obj = model.SysMenu(**obj_in.dict())
obj = model.SysMenu(**obj_in.model_dump(exclude_unset=True))
await obj.save()
return obj

Expand All @@ -17,7 +17,7 @@ async def query_by_id(id: int) -> Optional[model.SysMenu]:
async def update(id: int, obj_in: schema.SysMenu) -> Optional[model.SysMenu]:
obj = await query_by_id(id)
if obj:
for field, value in obj_in.dict(exclude_unset=True).items():
for field, value in obj_in.model_dump(exclude_unset=True).items():
setattr(obj, field, value)
await obj.save()
return obj
Expand All @@ -34,9 +34,9 @@ async def count(**kwargs) -> int:
return await model.SysMenu.filter(**kwargs).count()


async def query_all_by_limit(page_number: int, page_size: int,
**kwargs) -> List[model.SysMenu]:
async def query_all_by_limit(
page_number: int, page_size: int, **kwargs
) -> List[model.SysMenu]:
offset = (page_number - 1) * page_size
limit = page_size
return await model.SysMenu.filter(**kwargs
).offset(offset).limit(limit).all()
return await model.SysMenu.filter(**kwargs).offset(offset).limit(limit).all()

0 comments on commit 40f2329

Please sign in to comment.