当前位置: 首页 > news >正文

企业网站建设原因自己做的网站地址手机怎么打不开

企业网站建设原因,自己做的网站地址手机怎么打不开,如何用html做网站,网站建设的常见技术有哪些提示: 如果想获取文章中具体的代码信息#xff0c;可在微信搜索【猿码记】回复 【fastapi】即可。 1.参数接收 1.1 路径参数(不推荐) 1.代码清单 在app/router下#xff0c;新增demo_router.py文件,内容如下: from fastapi import APIRouterrouter APIRouter( prefix提示: 如果想获取文章中具体的代码信息可在微信搜索【猿码记】回复 【fastapi】即可。 1.参数接收 1.1 路径参数(不推荐) 1.代码清单 在app/router下新增demo_router.py文件,内容如下: from fastapi import APIRouterrouter  APIRouter(    prefix/demo,    tags[演示接口])router.get(/path/{order_id})async def pathParamReceive(order_id: int):        路径参数接收演示        return {        接受结果: order_id,    } 注意:当我们定义参数类型时,FastAPI 接受参数时,会自动进行解析,如果类型不一致,则会报错。 2.请求验证 # 正常传参➜  curl http://127.0.0.1:8000/demo/path/12222{接受结果:12222}# 当传参类型不匹配时,接口定义是:int➜  curl http://127.0.0.1:8000/demo/path/hello{detail:[{loc:[path,order_id],msg:value is not a valid integer,type:type_error.integer}]}# 当什么都不传时➜ curl http://127.0.0.1:8000/demo/path/{detail:Not Found} 3.顺序大坑 假如我们定义两个接口,带路径参数的:/path/{order_id}和不带路径参数的:/path/test,可能会因为顺序问题导致我们无法正常访问/path/test,例如路由注册时代码如下: ...router.get(/path/{order_id})async def pathParamReceive(order_id: int):        路径参数接收-演示-带路径参数        return {        接受结果: order_id,    }router.get(/path/test)async def pathParamReceive2():        路径参数接收-演示-不带路径参数        return {        msg: hello,    } 然后进行访问: # 带路径参数的可以正常访问➜  curl http://127.0.0.1:8000/demo/path/99999{接受结果:99999}# 不带路径参数的可以正常访问➜ curl http://127.0.0.1:8000/demo/path/test{detail:[{loc:[path,order_id],msg:value is not a valid integer,type:type_error.integer}]} 通过替换两个函数位置就可以正常访问了, 感觉比较奇葩,不推荐使用只做了解即可。更多使用方法可见官方文档: https://fastapi.tiangolo.com/zh/tutorial/path-params/ 1.2 查询参数 1.代码清单 在app/router下新增demo_router.py文件,内容如下: from typing import Union...router.get(/query/receive)router.get(/query/receive)async def queryParamReceive(username: str, sex: str  男, city: Union[str, None]  None):        查询参数接受-演示        return {        msg: 查询参数接收,        result: {            username: username,            sex: sex,            city: city,        }    }...     2.参数约束 username: str: 代表参数 username为必填字段; sex: str 男: 代表参数 sex为选填字段,并且有默认值 男; city: Union[str, None] None: 代表参数 city为选填字段, 并无默认值; Union 是 typing 模块中的一个泛型类用于表示多个类型中的一个 注意: 当参数有默认值时,顺序一定要放在没有默认值参数后面否则会提示语法错误:SyntaxError: non-default argument follows default argument 3.请求验证 1.3 请求体(推荐) 使用请求体接受参数,一般分为两个步骤: 第一步: 使用 Pydantic模型声明一个请求体(其实就是 class) 第二步: 路由函数的参数绑定上这个模型 注意:工作中比较常用的参数接收方式,推荐使用~ 1.定义模型 文件位置: app/parameter/demo_param.py from typing import Union# 导入pydantic对应的模型基类from pydantic import BaseModelclass DemoParam(BaseModel):        请求体参数对应的模型        user_name: str    age: int    city: Union[str, None] 2.优化导入 文件位置: app/parameter/__init__.py from app.parameter.demo_param import DemoParam 3.使用 文件位置: app/router/demo_router.py # from app.parameter.demo_param import DemoParam 如果没有优化导入需要用这种方式导入from app.parameter import DemoParam # 如果没有优化导入这行会报错router  APIRouter(    prefix/demo,    tags[演示接口])router.post(/query/receive)async def bodyReceive(body: DemoParam):        请求体参数接受-演示        return {        msg: 请求体参数接受,        result: {            body: body,        }    } 4.验证 # 必填参数user_name不传时curl -X POST \  http://127.0.0.1:8000/demo/query/body/receive \  -H accept: application/json \  -H Content-Type: application/json \  -d {  age: 99,  city: 北京}{detail:[{loc:[body,user_name],msg:field required,type:value_error.missing}]}# 必填参数user_name传值时➜ curl -X POST \  http://127.0.0.1:8000/demo/query/body/receive \  -H accept: application/json \  -H Content-Type: application/json \  -d {  user_name: 娃哈哈,  age: 99,  city: 北京}{msg:请求体参数接受,result:{body:{user_name:娃哈哈,age:99,city:北京}}}# 必填参数user_name传空时➜  curl -X POST \  http://127.0.0.1:8000/demo/query/body/receive \  -H accept: application/json \  -H Content-Type: application/json \  -d {  user_name: ,  age: 99,  city: 北京}{msg:请求体参数接受,result:{body:{user_name:,age:99,city:北京}}} 2.参数验证 在Python中推荐使用成熟的第三方库进行数据验证,这样不仅可以少写一些if .. elif..,还能让代码的可读性更强; 2.1 Pydantic介绍 Pydantic 是一个 Python 库用于数据验证和设置特别是用于验证数据模型。它通过声明性的方式定义数据模型并提供了强大的数据验证和转换功能。Pydantic 最初是为 FastAPI 框架设计的但它也可以在其他 Python 项目中独立使用。 注意: 文中使用的pydantic版本为: 1.10.11, 貌似不同的版本可能会存在差异;具体可参见官方文档: https://docs.pydantic.dev/latest/ 使用Pydantic 的本质其实就是如何编写对应的数据验证规则,下面列举一些常用的规则: 2.2 常用验证 下面列举一些常用的验证规则: 基本数据类型: int, float, str, bool; 可选参数: Optional[type] 表示可选参数, Union[x, None]也可以表示可选; 整数范围: 结合 conint函数判断数字范围 ,如 age: conint(ge18, le30); ge:大于等于、gt:大于、le:小于等于、lt:小于 字符长度: 结合 constr函数判断字符长度,如: constr(min_length6, max_length10); 正则表达式: 使用 constr函数中的参数 regex 可以用于进行正则表达式验证 枚举验证: 使用 Enum 定义枚举类,验证。 列表类型: 使用 List[type] 来限制列表值的类型并尝试把参数转成对应的类型。 字典类型: Dict[key_type, value_type] 来限制字典 key和 val类型并尝试把参数转成对应的类型。 from enum import Enumfrom typing import Union, Optional, List, Dict# 导入pydantic对应的模型基类from pydantic import BaseModel, constr, conintclass GenderEnum(str, Enum):        性别枚举        male  男    female  女class PydanticVerifyParam(BaseModel):        用来学习使用pydantic模型验证        user_name: str  # 基本类型    age: conint(ge18, le30)  # 整数范围18  age  30    password: constr(min_length6, max_length10)  # 字符长度    phone: constr(regexr^1\d{10}$)  # 正则验证手机号    address: Optional[str]  None  # 可选参数    sex: GenderEnum  # 枚举验证,只能传: 男和女    likes: List[str]  # 值会自动转成传字符串列表    scores: Dict[str, float]  # key会转成字符串,val 会转成浮点型 注意:上面列举的都是基本使用实际中可以组合进行多项组合使用如items: List[constr(min_length1, max_length3)] : 限制列表中的每个字符串长度的范围 2.3 自定义验证 validator 装饰器用于定义自定义验证函数,具体是如下: from pydantic import BaseModel, constr, conint, validator...class PydanticVerifyParam(BaseModel):        用来学习使用pydantic模型验证        user_name: str  # 基本类型    ...    validator(user_name)    def validateUsername(cls, value: str):                自定义验证函数                if value.find(傻)  -1:            raise ValueError(user_name不能包含敏感词)        return value       验证结果: // 当参数user_name传:你好傻{  detail: [    {      loc: [        body,        user_name      ],      msg: user_name不能包含敏感词,      type: value_error    }  ]} 2.4 其他验证 EmailStr: 用于验证字符串是否是有效的电子邮件地址。 IPvAnyAddress: 用于验证字符串是否是有效的 IPv4 或 IPv6 地址。 StrictBool 用于验证字符串是否是严格的布尔值 true 或 false。 AnyHttpUrl: 用于验证字符串是否是有效的 URL包括以 http 或 https 开头的 URL。 更多验证方式可查看文档: https://docs.pydantic.dev/latest/concepts/validators/ 本文由 mdnice 多平台发布
http://www.zqtcl.cn/news/157046/

相关文章:

  • 手机wap网站程序上海网站制作库榆
  • 深圳网站建设 骏域网站建设推广软文范例大全500
  • 深圳广东网站建设套餐最近新闻事件
  • 电子商务网站建设与管理 pdf“设计网站”
  • 聊城wap网站建设清溪东莞网站建设
  • 书籍网站建设规划书app开发公司价格表
  • 小程序网站模板住建个人证书查询网
  • 西安 美院 网站建设贵阳美丽乡村建设网站
  • 平顶山市哪里有做网站的wordpress应用教程
  • 制作企业网站的实训报告医院网站设计模板
  • 要做网站照片怎么处理广东外发加工网
  • 做国际网站每年要多少钱厦门 外贸商城网站
  • 城乡建设学校官方网站程序外包网站
  • 深圳 网站设计师 招聘西数网站管理助手 伪静态
  • 广州网站备案要求国外工装设计网站大全
  • php+mysql 2012也买酒商城网站源码怎么用net123做网站
  • 西充移动网站建设如何设计一个简洁的logo
  • 济宁做网站自媒体新手入门
  • 重庆网站开发哪家专业网站布局图
  • 网站设计原则的历史网站开发 模块
  • 做企业网站收费自己的网站怎么做排名
  • 做网站网站软件开发经费预算
  • 优化网站图片网站图片布局
  • 有效的网站需要做到什么意思商业网站是什么
  • 网站设计开发网站用c 建网站时怎么做导航菜单栏
  • 哪些网站做推广比较有效果厦门网站建设公司名单
  • 街头小吃加盟网站建设网站专题制作
  • 网站论坛推广方案加强思政部网站建设
  • 查看WordPress网站插件北京西站附近的景点有哪些
  • 网站建设技术合同模板下载怎么用phpstudy做网站