python商城开发_使用FastAPI 构建的商城项目API
使用FastAPI 构建的商城项目API
学习FastAPI 构建项目目录
构建项目接口
环境
项目文件结构
文件结构是仿照Flask项目目录构建的,官方推荐的模版对我而言太大。
.
|_FastDemo // 主项目文件
|
|___api
| |_____init__.py // 工厂模式生成app对象
| |____v1
| |____database.py // 数据库对象
| |____schemas.py // 验证参数 (可放到对应模块内)
| |____models.py // models模型类型 (可放到对应模块内)
| |____home // 项目模块文件
| | |____home.py
| | |______init__.py
| | |____home_backup.py
| |____category
| | |______init__.py
| |______init__.py
| |____profile
| | |____profile.py
| | |______init__.py
| |____goods
| |____goods.py
| |____goods_backup.py
|____test // 测试用例
| |______init__.py
| |____test_sqlite.py
|____utils // 工具类
| |______init__.py
| |___response_code.py // 自定义返回的状态码
|____setting // 配置文件夹
| |______init__.py // 根据虚拟环境 导出不同配置
| |____development_config.py // 开发环境配置
| |____production_config.py // 生产环境配置
|____extensions // 扩展文件
| |______init__.py // 导出扩展文件
| |____logger.py //
|____alembic // alembic 初始化自动生成的
| |____script.py.mako
| |____env.py
| |____versions
| |____README
|____alembic.ini // alembic 初始化自动生成的
|____.gitignore
|____requirements.text // 依赖文件
|____main.py // 项目启动文件
|____mall_data.sql // mysql insert 数据
|____mall_table.sql // msyql表格
|____README.md
|____Pipfile
|____Pipfile.lock
配置环境
setting目录下 init.py文件,会根据ENV的环境变量 导入不同的环境
development_config.py // 开发环境配置 production_config.py // 生产环境配置
如果不配置, 就只能访问 backup 备份的接口
导入数据
mall_data.sql // mysql insert 数据
mall_table.sql // msyql表格
上面两个文件是mysql数据, 需自行导入
安装依赖
# 推荐先安装pipenv
pip install pipenv -i https://mirrors.aliyun.com/pypi/simple/
# 先进入到项目文件下
cd /项目目录/MallAPI
# 安装pipenv python版本3.7+
pipenv install --python 3.8 # 注意 --python空格3.8
# 安装完后激活环境
pipenv shell
# 安装依赖
pip install -r requirements.text -i https://mirrors.aliyun.com/pypi/simple/
启动
cd /项目目录/MallAPI
# 在main.py文件同级目录下 执行
uvicorn main:app --host=127.0.0.1 --port=8010 --reload
当然也可以直接执行
python main.py
配置文件环境变量
# Pycharm 环境变量
https://stackoverflow.com/questions/21538859/pycharm-set-environment-variable-for-run-manage-py-task/22899916
https://stackoverflow.com/questions/42708389/how-to-set-environment-variables-in-pycharm
sqlalchemy + alembic数据迁移
尝试使用sqlalchemy + alembic 但是之前使用的Flask-Sqlalchemy扩展,迁移数据库很方便, 研究这个感觉很麻烦,算了直接使用sql语句,数据表手动创建
# 安装
pip install alembic
# 初始化 生成alembic配置文件
alembic init alembic
参考
python商城开发_使用FastAPI 构建的商城项目API相关推荐
- Python中fastapi构建的web项目使用pyinstaller打包为exe文件
假设当前已经使用fastapi构建了一个web项目,项目结构为: 如果我们想使用pyinstaller对此web项目进行打包为exe文件,则需要在项目的跟目录下面执行下述命令先安装pyinstalle ...
- python做网站开发_如何用Python做网站开发
很多人想要用Python做网站开发,但是又不知从何入手,接下来小编介绍用Python做网站开发需要学习哪些知识,又应该以什么样的顺序来学. 第一步:HTML(超文本标记语言)是网页的核心,学好HTML ...
- 如何学好python web开发_如何学好python web开发
1.前言 我在没有接触互联网这个行业的时候,就一直好奇网站是怎么构建的.我现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,不过兴趣终归还是要有的,还要自己动手去实践的.Web开 ...
- python 环境 开发_设置Python开发环境
python 环境 开发 Setting up Python is usually simple, but there are some places where newcomers (and exp ...
- python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...
Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...
- Python中fastapi构建的web项目进行docker部署
假设使用fastpi已经创建好了一个web项目 第一步:在项目的根目录路径下面创建一个名为dockerfile的文件 第二步:传统的方法是在dockerfile文件中编辑下述内容 FROM pytho ...
- swift python混合开发_引用swift项目
iOS - OC 与 Swift 互相操作 前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架 ...
- ifttt 编程开发_使用Stamplay构建AngularJS应用:面向开发人员的IFTTT
ifttt 编程开发 什么是Stamplay? (What is Stamplay?) Stamplay is a web-based development platform for the API ...
- python fpga开发_惊人!Python+FPGA 实现FPGA开发大提速?!!
在论文中,各位教授还对PYNQ开发环境的优缺点进行了阐述: 首先来说,PYNQ应用开发框架是一个开源的开发环境,提供了标准的可以约束芯片I/O引脚的"Overlay"比特流,同时, ...
最新文章
- vue调试工具如何使用_教你使用Vue.js的DevTools来调试vue项目
- EngineRoot是在哪里定义的?
- 获取SpringBean对象工具类
- python画三维平面-Python三维绘图--Matplotlib
- 设计功能和界面测试用例一
- git tag 介绍
- 【Android】init.rc
- 电脑技巧:如何开机进入纯净的Windows系统,看完你就会了!
- linux系统启动自动启动,linux系统下的自动启动
- google搜索引擎优化指南_Google谷歌SEO怎么优化?|新手入门完全指南
- 最简单的排序算法(C和C++实现)
- MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
- 关于码云的一些基本知识_关于葡萄酒,你必须知道的一些基础知识
- 啊哈C语言 第四章 【代码】【习题答案】
- 用友 U8 word模板修改
- 【图片】 3D打印的一些小东西 暗黑
- Azure云平台 GPS大数据解决方案 EventHub+Azure Databricks+Azure Cosmos DB Cassandra
- 如何让自己时刻冷静的方法_怎么让心静下来(让心静下来的5种方法)
- 长篇幅详解辐射定标、大气校正、监督分类、掩膜统计、植被覆盖度操作
- java 群名_网名丨沙雕又可爱的网名/群名
热门文章
- oracle中同义词的作用,Oracle中使用同义词
- Hive从入门到放弃——Hive表DML的艺术性(八)
- 苹果几最好用_史上最好用最全面的街机平台(无需下载,安卓苹果,电脑)跨平台畅玩...
- 将SuperMap iClient3D 9D(2019) for WebGL示例项目部署到iserver服务器上
- 小程序自定义拖动排序(uniapp)
- JDK中的Timer和TimerTask详解 目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 sche
- linux系统鼠标左键失灵,centos鼠标左键突然失灵问题与解决(更新于2014/11/24)
- ios上架及证书最新申请流程
- iOS客户端节日换肤的思考与实现
- 郑州大学统考英语计算机题库,2017年大学英语统考大纲试题(题型版五)