这是基于《Vue+Foxtable 前后端分离Web开发框架》,把Python的Fastapi作为新后端,进阶使用,保留相同的前端框架、用户管理、功能权限、数据权限思路。
因为python的第三方库是最强大的,在遇到特殊需求的时候,它都会有库作为解决方案。选它作为大型和长期项目的后端,等于为自己留一条最强的后路。
后端在95%的时间,都是在做数据库的增删改查,并把数据变成json的api接口,提供给前端,狐表能很好的应付。
但是还有5%,就是各种奇怪的疑难杂症,例如PDF解密加密、微信支付宝对接、图片加工处理、金蝶星空云的SDK接口、语音转换处理、使用爬虫、OCR识别、ai知识库对接、蚂蚁区块链对接等等。
如果你已经熟练使用狐表,又遇到大型项目,怕后期遇到技术瓶颈,就可以考虑升级这个框架。
既然介绍使用新框架,那狐表原来能实现的,这边也要能实现,才能安心过渡,实施项目。
http请求各种api数据的库(类似狐表HttpClient):同步的requests、异步的Httpx
mssql数据库连接驱动(类似狐表的数据库连接):pyodbc,配合微软的odbc17驱动
表的读写工具(类似于狐表的DataTable,也称为ORM框架):Sqlalchemy
100万行级别数据导入数据库工具(类似于Sqlblukcopy):pandas
对接Chrome浏览器并获取网页元素内容(类似于狐表WebBrowser):Selenium
excel报表打印(类似于狐表专业报表的):xlsxwriter
pdf打印(类似于狐表的PDFCreator):reportlab
因为这个是最简单的api框架工具,没有Django之类的历史负担,天生就是高性能异步框架,作为后端,它足够强大,官方也有中文文档。不过现在很少人看文档了,上手直接问ai,让ai教你写代码就行了。
官方中文文档:https://fastapi.tiangolo.com/zh/
它有多快多简单?你看它写一个Hello World api,就这么简单
from typing import Union from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q}
后端源码+PC网页端源码 :600元
后端源码+PC网页端源码 + 手机端H5源码:1600元
1)电脑端体验
账号:zhangsan
密码:aaa123##
(试用请不要修改密码,谢谢,方便其他人体验。如果密码不对,请联系我重置)
2)手机端体验
手机端与PC端是同一套后台,所以账号密码与数据都是一样的。
它们都部署在腾讯云上,使用nginx反向代理,启动好免费的SSL证书,都是HTTPS协议。
8.1 架构图:
8.2 请求流程说明:
前端发起请求,Axios统一拦截,headers增加Bearer 的Jwt令牌(未登录就不用添加),最终请求格式为json。
fastapi后端的uvicorn负责监听请求。收到前端发过来的请求后,main.py会有检查Referer是否非法跨域、检查是否为请求文件,匹配到本地文件,则直接返回文件。如果是api请求,router会转发到相应方法,然后进行业务处理,最后把处理的结果返回给前端,前端解密后,进行页面渲染。
身份校检,用的是fastapi推荐的oauth2-jwt模式,所以要彻底看懂官方的说明:https://fastapi.tiangolo.com/zh/tutorial/security/oauth2-jwt/。
8.3 后端:
Fastapi最新版
redis库
mssql2008库(选这个,是为了能兼容狐表,这样我将来还能拓展用狐表做exe开发)
8.4 PCWeb端:
8.5 移动端:
基础框架用HBuilderX+uni-app, uni-app是个流应用的创始人,微信小程序也是用它的核心技术实现的。所以这个框架,在移动端的跨平台里,非常强大
样式框架采用uViewUi 1.0(我觉得它比2.0更好用更灵活!)