01-flask电商项目开发基础配置
本项目前端采用vue-cli的脚手架,后端采用Flask的Web框架。项目通过完成用户管理、权限管理、商品管理、订单管理、统计管理等功能,综合了前后端的知识,希望使大家都能受益。
1、使用到的技术如下所示。
前端技术:
- Vue 前端框架
- Element-UI UI框架
- Axios 发送请求
- Echarts 绘制图表
后端技术:
- Python主流语言
- flask web框架
- MySQL存储主要数据
- Redis存储缓存数据
2、项目需求

3、vscode创建flask基本框架。
vscode可以网上下载安装,也可以可以关注公众号:呆呆的clearlie,回复:vscode即可下载。
打开VSCode,创建一个新的文件夹,命名为flask_shop
在python控制台中创建虚拟环境:mkvirtualenv shop_env。将环境切换为虚拟环境,在这里可能会出现相关bug,可参考:https://www.cnblogs.com/clearlie/p/13186447.html
切换到虚拟环境后,在控制台输入:pip install flask 安装flask框架。
在flask_shop文件夹下面创建一个manager.py文件,在文件中输入以下代码。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello world"
if __name__ == "__main__":
app.run()
运行该文件夹,将网址输入到浏览器中,看到"hello world"输出的结果,说明一切准备就绪,可以进行接下来的操作。
4、数据库参数的配置。
我们配置的是MYSQL数据库,其连接方式如下:
from flask import Flask
import os app = Flask(__name__) class Config:
# 配置MySQL参数
MYSQL_DIALECT = 'mysql'
MYSQL_DIRVER = 'pysql'
MYSQL_NAME = 'root'
MYSQL_PWD = ""
MYSQL_HOST = 'localhost'
MYSQL_PORT = ''
MYSQL_DB = 'shop_env'
MYSQL_CHARSET = 'utf8mb4' SQLALCHEMY_DATABASE_URI = f'{MYSQL_DIALECT}+{MYSQL_DIRVER}://{MYSQL_NAME}:{MYSQL_PWD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset={MYSQL_CHARSET}'
SQLALCHEMY_TRACK_MODIFICATIONS = True # 应用于加密
SECRET_KEY = os.urandom(16)
DEBUG = True app.config_from_object(Config) @app.route("/") def index():
return "hello world" if __name__ == "__main__":
app.run()
5、安装基本的flask插件。
在控制台输入以下命令安装,同时初始化数据库。
pip install flask_sqlalchemy
pip install flask_script
pip isntall flask_migrate
在manager.py文件中导入相关的插件函数,并进行初始化,新增代码如下:
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager app = Flask(__name__) class Config:
...
app.config.from_object(Config) db = SQLAlchemy(app) manager = Manager(app)
Migrate(app, db)
manager.add_command('db', MigrateCommand)
...
6、拆分项目结构
接下来我们将manager.py里的内容进行拆分,拆分代码的目的在于是不同的代码位于不同的文件里,各司其职。
在FLASK_SHOP新建一个flask_shop的python包和config的python文件,在flask_shop下再建一个user的python包和视图view.py文件,python包即含一个__init__.py初始化文件的文件夹。其相关文件如下:

把之前的数据库配置代码移到配置文件config.py里,如下所示:
import os class Config:
# 配置MySQL参数
MYSQL_DIALECT = 'mysql'
MYSQL_DIRVER = 'pysql'
MYSQL_NAME = 'root'
MYSQL_PWD = ""
MYSQL_HOST = 'localhost'
MYSQL_PORT = ''
MYSQL_DB = 'shop_env'
MYSQL_CHARSET = 'utf8mb4' SQLALCHEMY_DATABASE_URI = f'{MYSQL_DIALECT}+{MYSQL_DIRVER}://{MYSQL_NAME}:{MYSQL_PWD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset={MYSQL_CHARSET}'
SQLALCHEMY_TRACK_MODIFICATIONS = True # 应用于加密
SECRET_KEY = os.urandom(16) # 定义一个开发模式的类
class DevelopmentConfig(Config):
DEBUG = True class ProductionConfig(Config):
pass config_map = {
"develop": DevelopmentConfig,
"product": ProductionConfig,
}
在配置文件中我们新增了两个类,一个开发模式,一个生产模式,同时使用config_map字典进行存储。
manager.py的文件主要用于撰写控制操作程序,代码更新如下:
from flask_shop import create_app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from flask_shop import db app = create_app("develop") manager = Manager(app)
Migrate(app, db)
manager.add_command('db', MigrateCommand) if __name__ == "__main__":
app.run()
flask_shop初始化文件下的代码如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config_map db = SQLAlchemy() def create_app(config_name):
app = Flask(__name__)
obj = config_map.get(config_name)
app.config.from_object(obj)
db.init_app(app) # 引入注册蓝图
from flask_shop.user import user
app.register_blueprint(user) return app if __name__ == "__main__":
app.run()
user的初始化文件如下:
from flask import Blueprint
user = Blueprint('user', __name__, url_prefix='/user')
from . import view
视图函数view.py的代码如下:
from flask_shop.user import user
@user.route("/")
def user():
return "hello, boy!!!"
运行manager.py文件,在浏览器输入http://127.0.0.1:5000/user/,可以看到以下结果:

现在flask框架的基础配置我们已经完成了,接下来就是相关的功能开发。
01-flask电商项目开发基础配置的更多相关文章
- Spring Boot微服务电商项目开发实战 --- 基础配置及搭建
根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...
- SpringBoot微服务电商项目开发实战 --- 模块版本号统一管理及Redis集成实现
上一篇文章总结了基于SpringBoot实现分布式微服务下的统一配置.分环境部署配置.以及服务端模块的分离(每一个提供者就是一个独立的微服务).微服务落地.Dubbo整合及提供者.消费者的配置实现.本 ...
- SpringBoot微服务电商项目开发实战 --- api接口安全算法、AOP切面及防SQL注入实现
上一篇主要讲了整个项目的子模块及第三方依赖的版本号统一管理维护,数据库对接及缓存(Redis)接入,今天我来说说过滤器配置及拦截设置.接口安全处理.AOP切面实现等.作为电商项目,不仅要求考虑高并发带 ...
- SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范
最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...
- Spring Boot微服务电商项目开发实战 --- 分布式开发要避的那些坑
今天已经进入第七讲了,整个微服务架构的搭建工作也基本完成.那到目前为止究竟使用了那些技术及实现了什么功能呢?我们先回顾一下. 使用的技术:SpringBoot.Dubbo.Zookeeper.Redi ...
- SpringBoot微服务电商项目开发实战 --- 全局异常处理
上一篇文章讲了Redis缓存的安全防范及Kafka的接入及消息实现,今天接着前面的内容基础说说项目的优化和基础配置,今天要讲的内容主要是Spring Boot项目中的全局异常处理.为什么要做这件事呢? ...
- SpringBoot微服务电商项目开发实战 --- Kafka集成接入
kafka作为消息中间件的一款产品,她比较轻量级,在吞吐量方面很优秀,默认消息持久化到硬盘当中 168小时=7天,log.retention.hours=168,比较适合来做运营的统计.其他的不多讲, ...
- Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现
昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...
- SpringBoot微服务电商项目开发实战 --- 分布式文件系统实现
SpringBoot分布式开发系列文章已经持续了一段时间了,每一篇都有核心内容讲给大家.比如:分环境部署配置及服务端口号统一配置,子模块版本号管理及第三方jar依赖管理,单点登录实现,接口安全(签名+ ...
随机推荐
- 震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?
JDK BUG 这篇文章,聊一下我最近才知道的一个关于 JDK 8 的 BUG 吧. 首先说一下我是怎么发现这个 BUG 的呢? 大家都知道我对 Dubbo 有一定的关注,前段时间 Dubbo 2.7 ...
- Shell编译安装nginx
环境及规划 [root@nginx-node01 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ID 主机名 ip ...
- spark源码分析以及优化
第一章.spark源码分析之RDD四种依赖关系 一.RDD四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency.PrunDependency.RangeDependency和O ...
- linux配置SVN服务
在linux下配置SVN库,网上找到不少教程,但是对于有几个容易混淆的地方需要记录下, 1.在创建SVN文档库的时候,需要使用svn命令先创建出来, svnadmin create /home/svn ...
- Android学习笔记使用AlertDialog实现对话框
使用AlertDialog可以实现如下对话框 案例 布局问文件就加了几个Button,我直接上Java代码了 实现显示带取消,确定按钮的对话框按钮 Button showDialogOne = fin ...
- cc38b_demo_C++_异常_(2)txwtech在异常中使用虚函数-多态
//cc38b_demo,21days_C++_异常_(2)txwtech20200121在异常中使用虚函数-多态 //--异常层次结构//*异常的类-创建自己的异常类//*异常派生-就是继承//*异 ...
- 一个老牌程序员说:做Java开发,怎么可以不会这 20 种类库和 API
- Spring插件安装 - Eclipse 安装 Spring 插件详解(Spring Tool Suite)
安装完成后重启eclipse即可新建spring工程
- Spring Boot项目使用Swagger2文档教程
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 前言 Sprin ...
- Linux 集群安装zookeeper
系统:CentOs 7 环境:jdk 8 Zookeeper 下载地址: http://www-eu.apache.org/dist/zookeeper/stable/ 上传至服务器并解压,本人放在 ...