FastAPI+JWT+OAuth2.0 权限体系:实现多级角色校验与请求防篡改
很多开发小伙伴在用 FastAPI 开发后台管理、业务接口时鉴权实现都比较简陋仅仅简单校验 Token 是否存在完全没有角色分级控制更没有考虑请求参数篡改、接口越权访问等安全风险。上线之后很容易出现普通用户访问管理员接口、前端篡改参数获取他人数据等严重漏洞。早期我负责的内部管理平台就踩过这类坑仅依靠简易 Token 登录缺少权限隔离。后来重构权限模块采用FastAPIJWTOAuth2.0标准方案搭建完整权限体系基于 OAuth2.0 规范实现登录流程JWT 承载用户角色信息完成多级权限拦截额外增加参数签名实现请求防篡改。整套方案经过线上验证满足中小型项目生产安全规范。本文附带完整可运行代码从零搭建鉴权链路新手可以直接移植到自己的项目中。一、技术选型思路JWT 与 OAuth2.0 相辅相成不少初学者容易混淆 JWT 和 OAuth2.0甚至认为二者二选一。这里简单理清两者定位 OAuth2.0 是一套授权标准协议规范登录、令牌下发、资源访问的整套流程 JWT 是令牌载体格式用来加密存储用户身份、角色等信息。只使用 JWT 的短板十分明显没有标准化授权流程权限粒度粗糙容易产生越权漏洞。结合 OAuth2.0 之后登录鉴权流程标准化支持依赖注入统一拦截接口。再增加请求签名校验能够有效防止前端篡改 URL 参数、伪造非法请求形成多层安全防护。整套技术栈依赖精简执行命令安装所需库pip install fastapi uvicorn pyjwt python-multipart二、完整实战代码多级权限 请求防篡改下面是优化后的生产可用 Demo包含 OAuth2 密码模式登录、JWT 签发解析、普通用户 / 管理员两级权限拦截、参数签名校验。from fastapi import FastAPI, Depends, HTTPException, status from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm import jwt import hashlib from datetime import datetime, timedelta app FastAPI(title多级权限与请求防篡改演示) # 密钥信息生产环境务必放入环境变量禁止硬编码 SECRET_KEY auth-secret-key-2026-online SIGN_SECRET request-sign-key-2026 ALGORITHM HS256 TOKEN_EXPIRE timedelta(minutes60) # 模拟用户库附带角色标识 user_database { user01: {username: user01, password: 123456, role: user}, admin01: {username: admin01, password: 123456, role: admin} } # OAuth2 令牌获取地址 oauth2_scheme OAuth2PasswordBearer(tokenUrl/login) def create_jwt_token(username: str, role: str): 生成JWT令牌携带角色信息 expire datetime.now() TOKEN_EXPIRE payload { sub: username, role: role, exp: expire } token jwt.encode(payload, SECRET_KEY, algorithmALGORITHM) return token def get_request_sign(params: dict, secret: str) - str: 生成请求签名用于防篡改校验 sort_items sorted(params.items()) raw_str .join([f{k}{v} for k, v in sort_items]) secret return hashlib.md5(raw_str.encode(utf-8)).hexdigest() def get_current_user(token: str Depends(oauth2_scheme)): 统一获取当前登录用户全局鉴权依赖 try: payload jwt.decode(token, SECRET_KEY, algorithms[ALGORITHM]) username payload.get(sub) role payload.get(role) if not username: raise HTTPException(status_code401, detail令牌非法) return {username: username, role: role} except jwt.ExpiredSignatureError: raise HTTPException(status_code401, detail令牌已过期) except Exception: raise HTTPException(status_code401, detail令牌解析失败) def admin_auth(user_info Depends(get_current_user)): 管理员专属权限依赖 if user_info[role] ! admin: raise HTTPException(status_code403, detail权限不足仅管理员可访问) return user_info # OAuth2标准登录接口 app.post(/login) def login(form_data: OAuth2PasswordRequestForm Depends()): user user_database.get(form_data.username) if not user or user[password] ! form_data.password: raise HTTPException(status_codestatus.HTTP_401_UNAUTHORIZED, detail账号或密码错误) access_token create_jwt_token(user[username], user[role]) return {access_token: access_token, token_type: bearer, role: user[role]} # 所有登录用户均可访问 app.get(/api/user/profile) def user_profile(user Depends(get_current_user)): return {msg: 普通用户接口访问成功, user: user} # 仅管理员允许访问 app.get(/api/admin/dashboard) def admin_dashboard(user Depends(admin_auth)): return {msg: 管理员后台接口访问成功, user: user} # 携带签名校验的业务接口防止参数篡改 app.get(/api/data/detail) def query_data(id: int, sign: str, user Depends(get_current_user)): calc_sign get_request_sign({id: str(id)}, SIGN_SECRET) if calc_sign ! sign: raise HTTPException(status_code400, detail请求参数被篡改拒绝访问) return {code: 200, data_id: id, message: 请求校验通过} if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)三、核心功能拆解OAuth2.0 标准化登录采用密码授权模式接口符合行业通用规范前端、第三方对接无需自定义特殊协议自动适配 FastAPI 内置文档调试。多级角色权限管控通过依赖注入实现权限拦截get_current_user校验登录状态admin_auth在其基础上二次判断角色。想要拓展更多角色运营、财务只需要新增对应的权限依赖函数扩展性很强。请求签名防篡改单纯依靠 JWT 只能校验登录身份无法阻止用户修改请求参数。接口入参按照固定规则排序加密生成签名服务端二次计算比对一旦参数被前端篡改签名直接校验失败。四、生产环境必看避坑要点第一密钥绝对不能硬编码在代码内推荐使用环境变量、配置中心统一管理。一旦密钥泄露攻击者可以随意伪造合法 JWT 令牌。 第二JWT 不要设置过长有效期。正式项目建议增加刷新 Token 接口短时效 access_token 提升安全性。 第三JWT 本身无法主动失效。如果需要实现强制下线功能需要搭配 Redis 黑名单存储失效令牌。 第四签名密钥和 JWT 密钥分开配置两层独立防护降低单一密钥泄露带来的安全风险。如果业务更加复杂还可以继续拓展基于角色的 RBAC 细粒度权限、接口白名单、IP 访问限制、限流功能进一步加固服务安全。五、总结对于 FastAPI 后端项目仅仅实现登录鉴权远远达不到生产安全标准。FastAPIJWTOAuth2.0这套权限体系标准化登录流程、实现多级角色隔离配合请求签名机制抵御参数篡改、非法请求。整个方案轻量化、无重型中间件依赖改造成本低。不管是内部管理平台、面向用户的业务接口都可以直接复用这套架构从源头规避越权访问、请求伪造等高频安全漏洞。M.Share.Wmoph.cN/Article/details/834771.shtmlM.Share.Wmoph.cN/Article/details/615905.shtmlM.Share.Wmoph.cN/Article/details/070082.shtmlM.Share.Wmoph.cN/Article/details/653152.shtmlM.Share.Wmoph.cN/Article/details/714274.shtmlM.Share.Wmoph.cN/Article/details/683061.shtmlM.Share.Wmoph.cN/Article/details/618460.shtmlM.Share.Wmoph.cN/Article/details/327381.shtmlM.Share.Wmoph.cN/Article/details/817928.shtmlM.Share.Wmoph.cN/Article/details/483594.shtmlM.Share.Wmoph.cN/Article/details/290316.shtmlM.Share.Wmoph.cN/Article/details/564405.shtmlM.Share.Wmoph.cN/Article/details/905858.shtmlM.Share.Wmoph.cN/Article/details/233024.shtmlM.Share.Wmoph.cN/Article/details/956949.shtmlM.Share.Wmoph.cN/Article/details/269504.shtmlM.Share.Wmoph.cN/Article/details/115859.shtmlM.Share.Wmoph.cN/Article/details/537541.shtmlM.Share.Wmoph.cN/Article/details/182017.shtmlM.Share.Wmoph.cN/Article/details/779791.shtmlM.Share.Wmoph.cN/Article/details/476130.shtmlM.Share.Wmoph.cN/Article/details/466948.shtmlM.Share.Wmoph.cN/Article/details/222452.shtmlM.Share.Wmoph.cN/Article/details/885940.shtmlM.Share.Wmoph.cN/Article/details/000460.shtmlM.Share.Wmoph.cN/Article/details/717458.shtmlM.Share.Wmoph.cN/Article/details/861430.shtmlM.Share.Wmoph.cN/Article/details/131791.shtmlM.Share.Wmoph.cN/Article/details/882497.shtmlM.Share.Wmoph.cN/Article/details/347376.shtmlM.Share.Wmoph.cN/Article/details/212364.shtmlM.Share.Wmoph.cN/Article/details/969533.shtmlM.Share.Wmoph.cN/Article/details/198113.shtmlM.Share.Wmoph.cN/Article/details/302261.shtmlM.Share.Wmoph.cN/Article/details/269437.shtmlM.Share.Wmoph.cN/Article/details/506594.shtmlM.Share.Wmoph.cN/Article/details/063464.shtmlM.Share.Wmoph.cN/Article/details/075974.shtmlM.Share.Wmoph.cN/Article/details/688990.shtmlM.Share.Wmoph.cN/Article/details/328909.shtmlM.Share.Wmoph.cN/Article/details/029537.shtmlM.Share.Wmoph.cN/Article/details/249410.shtmlM.Share.Wmoph.cN/Article/details/897940.shtmlM.Share.Wmoph.cN/Article/details/538562.shtmlM.Share.Wmoph.cN/Article/details/258638.shtmlM.Share.Wmoph.cN/Article/details/912229.shtmlM.Share.Wmoph.cN/Article/details/169036.shtmlM.Share.Wmoph.cN/Article/details/983575.shtmlM.Share.Wmoph.cN/Article/details/089549.shtmlM.Share.Wmoph.cN/Article/details/013378.shtmlM.Share.Wmoph.cN/Article/details/270759.shtmlM.Share.Wmoph.cN/Article/details/505033.shtmlM.Share.Wmoph.cN/Article/details/594374.shtmlM.Share.Wmoph.cN/Article/details/488819.shtmlM.Share.Wmoph.cN/Article/details/399439.shtmlM.Share.Wmoph.cN/Article/details/587086.shtmlM.Share.Wmoph.cN/Article/details/489428.shtmlM.Share.Wmoph.cN/Article/details/965046.shtmlM.Share.Wmoph.cN/Article/details/061881.shtmlM.Share.Wmoph.cN/Article/details/835628.shtmlM.Share.Wmoph.cN/Article/details/078292.shtmlM.Share.Wmoph.cN/Article/details/306662.shtmlM.Share.Wmoph.cN/Article/details/986396.shtmlM.Share.Wmoph.cN/Article/details/036811.shtmlM.Share.Wmoph.cN/Article/details/097344.shtmlM.Share.Wmoph.cN/Article/details/247645.shtmlM.Share.Wmoph.cN/Article/details/621295.shtmlM.Share.Wmoph.cN/Article/details/638652.shtmlM.Share.Wmoph.cN/Article/details/452514.shtmlM.Share.Wmoph.cN/Article/details/435336.shtmlM.Share.Wmoph.cN/Article/details/725312.shtmlM.Share.Wmoph.cN/Article/details/157191.shtmlM.Share.Wmoph.cN/Article/details/920713.shtmlM.Share.Wmoph.cN/Article/details/490401.shtmlM.Share.Wmoph.cN/Article/details/401548.shtmlM.Share.Wmoph.cN/Article/details/832757.shtmlM.Share.Wmoph.cN/Article/details/334014.shtmlM.Share.Wmoph.cN/Article/details/822553.shtmlM.Share.Wmoph.cN/Article/details/189424.shtmlM.Share.Wmoph.cN/Article/details/608650.shtmlM.Share.Wmoph.cN/Article/details/690438.shtmlM.Share.Wmoph.cN/Article/details/533113.shtmlM.Share.Wmoph.cN/Article/details/246851.shtmlM.Share.Wmoph.cN/Article/details/170286.shtmlM.Share.Wmoph.cN/Article/details/108173.shtmlM.Share.Wmoph.cN/Article/details/388118.shtmlM.Share.Wmoph.cN/Article/details/135665.shtmlM.Share.Wmoph.cN/Article/details/875562.shtmlM.Share.Wmoph.cN/Article/details/060716.shtmlM.Share.Wmoph.cN/Article/details/549185.shtmlM.Share.Wmoph.cN/Article/details/232260.shtmlM.Share.Wmoph.cN/Article/details/992523.shtmlM.Share.Wmoph.cN/Article/details/384567.shtmlM.Share.Wmoph.cN/Article/details/101389.shtmlM.Share.Wmoph.cN/Article/details/131144.shtmlM.Share.Wmoph.cN/Article/details/187310.shtmlM.Share.Wmoph.cN/Article/details/922548.shtmlM.Share.Wmoph.cN/Article/details/920974.shtmlM.Share.Wmoph.cN/Article/details/046882.shtmlM.Share.Wmoph.cN/Article/details/352322.shtmlM.Share.Wmoph.cN/Article/details/388395.shtmlM.Share.Wmoph.cN/Article/details/593093.shtmlM.Share.Wmoph.cN/Article/details/781807.shtmlM.Share.Wmoph.cN/Article/details/748597.shtmlM.Share.Wmoph.cN/Article/details/598855.shtmlM.Share.Wmoph.cN/Article/details/009779.shtmlM.Share.Wmoph.cN/Article/details/634530.shtmlM.Share.Wmoph.cN/Article/details/589952.shtmlM.Share.Wmoph.cN/Article/details/519682.shtmlM.Share.Wmoph.cN/Article/details/724261.shtmlM.Share.Wmoph.cN/Article/details/882566.shtmlM.Share.Wmoph.cN/Article/details/395985.shtmlM.Share.Wmoph.cN/Article/details/640793.shtmlM.Share.Wmoph.cN/Article/details/226405.shtmlM.Share.Wmoph.cN/Article/details/678179.shtmlM.Share.Wmoph.cN/Article/details/898044.shtmlM.Share.Wmoph.cN/Article/details/715063.shtmlM.Share.Wmoph.cN/Article/details/424559.shtmlM.Share.Wmoph.cN/Article/details/004000.shtmlM.Share.Wmoph.cN/Article/details/463409.shtmlM.Share.Wmoph.cN/Article/details/138525.shtmlM.Share.Wmoph.cN/Article/details/215799.shtmlM.Share.Wmoph.cN/Article/details/444448.shtmlM.Share.Wmoph.cN/Article/details/553493.shtmlM.Share.Wmoph.cN/Article/details/250252.shtmlM.Share.Wmoph.cN/Article/details/107773.shtmlM.Share.Wmoph.cN/Article/details/564405.shtmlM.Share.Wmoph.cN/Article/details/022753.shtmlM.Share.Wmoph.cN/Article/details/867186.shtmlM.Share.Wmoph.cN/Article/details/460616.shtmlM.Share.Wmoph.cN/Article/details/193042.shtmlM.Share.Wmoph.cN/Article/details/793485.shtmlM.Share.Wmoph.cN/Article/details/073568.shtmlM.Share.Wmoph.cN/Article/details/198676.shtmlM.Share.Wmoph.cN/Article/details/201738.shtmlM.Share.Wmoph.cN/Article/details/656227.shtmlM.Share.Wmoph.cN/Article/details/492076.shtmlM.Share.Wmoph.cN/Article/details/422965.shtmlM.Share.Wmoph.cN/Article/details/789898.shtmlM.Share.Wmoph.cN/Article/details/062091.shtmlM.Share.Wmoph.cN/Article/details/255009.shtmlM.Share.Wmoph.cN/Article/details/422849.shtmlM.Share.Wmoph.cN/Article/details/196436.shtmlM.Share.Wmoph.cN/Article/details/712722.shtmlM.Share.Wmoph.cN/Article/details/060177.shtmlM.Share.Wmoph.cN/Article/details/134828.shtmlM.Share.Wmoph.cN/Article/details/860814.shtmlM.Share.Wmoph.cN/Article/details/526426.shtmlM.Share.Wmoph.cN/Article/details/404711.shtmlM.Share.Wmoph.cN/Article/details/763054.shtmlM.Share.Wmoph.cN/Article/details/771810.shtmlM.Share.Wmoph.cN/Article/details/621871.shtmlM.Share.Wmoph.cN/Article/details/294287.shtmlM.Share.Wmoph.cN/Article/details/432133.shtmlM.Share.Wmoph.cN/Article/details/694247.shtmlM.Share.Wmoph.cN/Article/details/276033.shtmlM.Share.Wmoph.cN/Article/details/596018.shtmlM.Share.Wmoph.cN/Article/details/686698.shtmlM.Share.Wmoph.cN/Article/details/029645.shtmlM.Share.Wmoph.cN/Article/details/636282.shtmlM.Share.Wmoph.cN/Article/details/245032.shtmlM.Share.Wmoph.cN/Article/details/402156.shtmlM.Share.Wmoph.cN/Article/details/764709.shtmlM.Share.Wmoph.cN/Article/details/983666.shtmlM.Share.Wmoph.cN/Article/details/164085.shtmlM.Share.Wmoph.cN/Article/details/879270.shtmlM.Share.Wmoph.cN/Article/details/228675.shtmlM.Share.Wmoph.cN/Article/details/552722.shtmlM.Share.Wmoph.cN/Article/details/470243.shtmlM.Share.Wmoph.cN/Article/details/754427.shtmlM.Share.Wmoph.cN/Article/details/183829.shtmlM.Share.Wmoph.cN/Article/details/152839.shtmlM.Share.Wmoph.cN/Article/details/505070.shtmlM.Share.Wmoph.cN/Article/details/571457.shtmlM.Share.Wmoph.cN/Article/details/011509.shtmlM.Share.Wmoph.cN/Article/details/466689.shtmlM.Share.Wmoph.cN/Article/details/025944.shtmlM.Share.Wmoph.cN/Article/details/678806.shtmlM.Share.Wmoph.cN/Article/details/469611.shtmlM.Share.Wmoph.cN/Article/details/466288.shtmlM.Share.Wmoph.cN/Article/details/745591.shtmlM.Share.Wmoph.cN/Article/details/294085.shtmlM.Share.Wmoph.cN/Article/details/723485.shtmlM.Share.Wmoph.cN/Article/details/125945.shtmlM.Share.Wmoph.cN/Article/details/167129.shtmlM.Share.Wmoph.cN/Article/details/418342.shtmlM.Share.Wmoph.cN/Article/details/079842.shtmlM.Share.Wmoph.cN/Article/details/495694.shtmlM.Share.Wmoph.cN/Article/details/749240.shtmlM.Share.Wmoph.cN/Article/details/023975.shtmlM.Share.Wmoph.cN/Article/details/846724.shtmlM.Share.Wmoph.cN/Article/details/117963.shtmlM.Share.Wmoph.cN/Article/details/606888.shtmlM.Share.Wmoph.cN/Article/details/651090.shtmlM.Share.Wmoph.cN/Article/details/843244.shtmlM.Share.Wmoph.cN/Article/details/183899.shtmlM.Share.Wmoph.cN/Article/details/203230.shtmlM.Share.Wmoph.cN/Article/details/639366.shtmlM.Share.Wmoph.cN/Article/details/855854.shtmlM.Share.Wmoph.cN/Article/details/141046.shtmlM.Share.Wmoph.cN/Article/details/709783.shtmlM.Share.Wmoph.cN/Article/details/481059.shtmlM.Share.Wmoph.cN/Article/details/489729.shtmlM.Share.Wmoph.cN/Article/details/904710.shtmlM.Share.Wmoph.cN/Article/details/294678.shtmlM.Share.Wmoph.cN/Article/details/768200.shtmlM.Share.Wmoph.cN/Article/details/244838.shtmlM.Share.Wmoph.cN/Article/details/721646.shtmlM.Share.Wmoph.cN/Article/details/443133.shtmlM.Share.Wmoph.cN/Article/details/502054.shtmlM.Share.Wmoph.cN/Article/details/066096.shtmlM.Share.Wmoph.cN/Article/details/366164.shtmlM.Share.Wmoph.cN/Article/details/097649.shtmlM.Share.Wmoph.cN/Article/details/011698.shtmlM.Share.Wmoph.cN/Article/details/923973.shtmlM.Share.Wmoph.cN/Article/details/049684.shtmlM.Share.Wmoph.cN/Article/details/346976.shtmlM.Share.Wmoph.cN/Article/details/993343.shtmlM.Share.Wmoph.cN/Article/details/848536.shtmlM.Share.Wmoph.cN/Article/details/970054.shtmlM.Share.Wmoph.cN/Article/details/529185.shtmlM.Share.Wmoph.cN/Article/details/341371.shtmlM.Share.Wmoph.cN/Article/details/682028.shtmlM.Share.Wmoph.cN/Article/details/619940.shtmlM.Share.Wmoph.cN/Article/details/802390.shtmlM.Share.Wmoph.cN/Article/details/296416.shtmlM.Share.Wmoph.cN/Article/details/119133.shtmlM.Share.Wmoph.cN/Article/details/451504.shtmlM.Share.Wmoph.cN/Article/details/787205.shtmlM.Share.Wmoph.cN/Article/details/227657.shtmlM.Share.Wmoph.cN/Article/details/139000.shtmlM.Share.Wmoph.cN/Article/details/827936.shtmlM.Share.Wmoph.cN/Article/details/258298.shtmlM.Share.Wmoph.cN/Article/details/837740.shtmlM.Share.Wmoph.cN/Article/details/642251.shtmlM.Share.Wmoph.cN/Article/details/937669.shtmlM.Share.Wmoph.cN/Article/details/880360.shtmlM.Share.Wmoph.cN/Article/details/647794.shtmlM.Share.Wmoph.cN/Article/details/786482.shtmlM.Share.Wmoph.cN/Article/details/308148.shtmlM.Share.Wmoph.cN/Article/details/590986.shtmlM.Share.Wmoph.cN/Article/details/376907.shtmlM.Share.Wmoph.cN/Article/details/061142.shtmlM.Share.Wmoph.cN/Article/details/279024.shtmlM.Share.Wmoph.cN/Article/details/529811.shtmlM.Share.Wmoph.cN/Article/details/841783.shtmlM.Share.Wmoph.cN/Article/details/613291.shtmlM.Share.Wmoph.cN/Article/details/589289.shtmlM.Share.Wmoph.cN/Article/details/263049.shtmlM.Share.Wmoph.cN/Article/details/285657.shtmlM.Share.Wmoph.cN/Article/details/729695.shtmlM.Share.Wmoph.cN/Article/details/315463.shtmlM.Share.Wmoph.cN/Article/details/460857.shtmlM.Share.Wmoph.cN/Article/details/281219.shtmlM.Share.Wmoph.cN/Article/details/272508.shtmlM.Share.Wmoph.cN/Article/details/347914.shtmlM.Share.Wmoph.cN/Article/details/405903.shtmlM.Share.Wmoph.cN/Article/details/923487.shtmlM.Share.Wmoph.cN/Article/details/180272.shtmlM.Share.Wmoph.cN/Article/details/233274.shtmlM.Share.Wmoph.cN/Article/details/394930.shtmlM.Share.Wmoph.cN/Article/details/852028.shtmlM.Share.Wmoph.cN/Article/details/109749.shtmlM.Share.Wmoph.cN/Article/details/591659.shtmlM.Share.Wmoph.cN/Article/details/522003.shtmlM.Share.Wmoph.cN/Article/details/204061.shtmlM.Share.Wmoph.cN/Article/details/788801.shtmlM.Share.Wmoph.cN/Article/details/315151.shtmlM.Share.Wmoph.cN/Article/details/177681.shtmlM.Share.Wmoph.cN/Article/details/947849.shtmlM.Share.Wmoph.cN/Article/details/046396.shtmlM.Share.Wmoph.cN/Article/details/749970.shtmlM.Share.Wmoph.cN/Article/details/399496.shtmlM.Share.Wmoph.cN/Article/details/420032.shtmlM.Share.Wmoph.cN/Article/details/718577.shtmlM.Share.Wmoph.cN/Article/details/789980.shtmlM.Share.Wmoph.cN/Article/details/853938.shtmlM.Share.Wmoph.cN/Article/details/278133.shtmlM.Share.Wmoph.cN/Article/details/095623.shtmlM.Share.Wmoph.cN/Article/details/782649.shtmlM.Share.Wmoph.cN/Article/details/053285.shtmlM.Share.Wmoph.cN/Article/details/574750.shtmlM.Share.Wmoph.cN/Article/details/638634.shtmlM.Share.Wmoph.cN/Article/details/137832.shtmlM.Share.Wmoph.cN/Article/details/533333.shtmlM.Share.Wmoph.cN/Article/details/749871.shtmlM.Share.Wmoph.cN/Article/details/146147.shtmlM.Share.Wmoph.cN/Article/details/342049.shtmlM.Share.Wmoph.cN/Article/details/854869.shtmlM.Share.Wmoph.cN/Article/details/655604.shtmlM.Share.Wmoph.cN/Article/details/114447.shtmlM.Share.Wmoph.cN/Article/details/301403.shtmlM.Share.Wmoph.cN/Article/details/377668.shtmlM.Share.Wmoph.cN/Article/details/295177.shtmlM.Share.Wmoph.cN/Article/details/083984.shtmlM.Share.Wmoph.cN/Article/details/911634.shtmlM.Share.Wmoph.cN/Article/details/770192.shtmlM.Share.Wmoph.cN/Article/details/625881.shtmlM.Share.Wmoph.cN/Article/details/076396.shtmlM.Share.Wmoph.cN/Article/details/588111.shtmlM.Share.Wmoph.cN/Article/details/662180.shtmlM.Share.Wmoph.cN/Article/details/495138.shtmlM.Share.Wmoph.cN/Article/details/340891.shtmlM.Share.Wmoph.cN/Article/details/068425.shtmlM.Share.Wmoph.cN/Article/details/391808.shtmlM.Share.Wmoph.cN/Article/details/898065.shtmlM.Share.Wmoph.cN/Article/details/435409.shtmlM.Share.Wmoph.cN/Article/details/166447.shtmlM.Share.Wmoph.cN/Article/details/136045.shtmlM.Share.Wmoph.cN/Article/details/728863.shtmlM.Share.Wmoph.cN/Article/details/369913.shtmlM.Share.Wmoph.cN/Article/details/164459.shtmlM.Share.Wmoph.cN/Article/details/177300.shtmlM.Share.Wmoph.cN/Article/details/090507.shtmlM.Share.Wmoph.cN/Article/details/121226.shtmlM.Share.Wmoph.cN/Article/details/003641.shtmlM.Share.Wmoph.cN/Article/details/569965.shtmlM.Share.Wmoph.cN/Article/details/893763.shtmlM.Share.Wmoph.cN/Article/details/325614.shtmlM.Share.Wmoph.cN/Article/details/625659.shtmlM.Share.Wmoph.cN/Article/details/358019.shtmlM.Share.Wmoph.cN/Article/details/648843.shtml

相关新闻

用Micro:bit与纸板制作红外感应击掌机器人:从传感器原理到动手实践

用Micro:bit与纸板制作红外感应击掌机器人:从传感器原理到动手实践

1. 项目概述:当纸板遇上代码,一个“击掌”机器人的诞生如果你手头有一块Micro:bit,又恰好攒了几个快递纸箱,别急着扔掉。今天我想分享的,就是如何用这些看似普通的材料,制作一个能和你“击掌”的互动机器人…

2026/10/16 4:39:47 阅读更多 →
Windows C++ RPC开发实战:基于WinAPI的轻量级进程间通信实现

Windows C++ RPC开发实战:基于WinAPI的轻量级进程间通信实现

1. 项目概述:为什么要在Windows上用C和WinAPI搞RPC?如果你在Windows平台上用C做开发,尤其是涉及到进程间通信(IPC)或者分布式系统雏形,绕不开的一个话题就是RPC(远程过程调用)。你可…

2026/10/16 17:01:59 阅读更多 →
解密MiroFish:基于群体智能的下一代预测引擎架构解析

解密MiroFish:基于群体智能的下一代预测引擎架构解析

解密MiroFish:基于群体智能的下一代预测引擎架构解析 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物 项目地址: https://gitcode.com/GitHub_Trending/mi/MiroF…

2026/10/17 19:03:45 阅读更多 →

最新新闻

SAP BASIS运维入门:从权限管理到日常巡检的完整实战指南

SAP BASIS运维入门:从权限管理到日常巡检的完整实战指南

简介:这份SAP日常运维BASIS资源是一份面向SAP系统管理员与运维工程师的内训式实用手册,聚焦BASIS日常工作中最常用的操作命令与监控方法,帮助读者快速上手用户权限、集团、数据库、后台作业、打印、系统传输等核心运维任务。资源为单个PDF文档…

2026/10/17 20:09:16 阅读更多 →
教务系统逆向工程:Python实现登录态管理与选课自动化

教务系统逆向工程:Python实现登录态管理与选课自动化

简介:这是一份面向高校学生与Python初学者的教务系统抢课辅助工具包,聚焦于解决热门课程名额秒光场景下的自动化选课需求。资源以轻量级Python脚本为核心,通过模拟浏览器行为实现对教务页面的高频点击与请求提交,适用于SUSTC&…

2026/10/17 20:09:16 阅读更多 →
Python音乐推荐系统:协同过滤与内容相似度的混合推荐实战

Python音乐推荐系统:协同过滤与内容相似度的混合推荐实战

简介:一份实用的Python音乐推荐系统项目资料包,面向有一定Python基础、希望入门推荐系统或对音乐数据分析感兴趣的学习者,源自“跟着迪哥学Python”系列。压缩包内共17个文件,其中Jupyter Notebook用于交互式算法讲解与实验&#…

2026/10/17 20:09:16 阅读更多 →
Flutter device_info插件2021年崩溃原因与安全替代方案

Flutter device_info插件2021年崩溃原因与安全替代方案

1. 这个看似简单的API,为什么在2021年成了Flutter项目里的“高频报错源”2021年那会儿,我接手一个跨平台医疗类App的迭代任务,需求文档里只有一行字:“首页展示设备型号和系统版本”。听起来像呼吸一样自然——不就是调用device_i…

2026/10/17 20:09:16 阅读更多 →
Velodyne VLP-16 激光雷达安装配置全攻略:从开箱到点云可视化

Velodyne VLP-16 激光雷达安装配置全攻略:从开箱到点云可视化

简介:《Velodyne VLP16 用户手册》是面向激光雷达开发者、机器人研究者及自动驾驶入门工程师的官方使用与编程指南,针对 VLP-16 这款实时三维激光雷达,系统讲解其操作原理、设置流程与数据解析方法。资源包共 1 个 docx 文件,约 1…

2026/10/17 20:09:16 阅读更多 →
FLUX 3 Image Klein Base GGUF vs 蒸馏版 Klein:50 步 vs 16 步,微调与生成该选哪个?

FLUX 3 Image Klein Base GGUF vs 蒸馏版 Klein:50 步 vs 16 步,微调与生成该选哪个?

人工智能大模型基础模型本地部署模型量化媒体生成 【免费下载链接】flux-3-image-klein-base-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/flux-3-image-klein-base-GGUF 点击查看 免费下载 FLUX 3 Image Klein Base GGUF 是 Black Forest Labs 开源…

2026/10/17 20:08:15 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →