一、day03项目环境和结构搭建
1.1 flask-script
flask-script官方文档:https://flask-script.readthedocs.io/en/latest/
1.1.1 flask-script是干什么的?
- Flask的Web开发服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函数。这种方式很不方便,传递设置选项的理想方式是使用命令行参数。
- Flask-Script就是这么一个Flask扩展工具,为Flask程序添加一个命令行解析器。简单地说,Flask-Script的作用就是可以通过命令行的形式来操作Flask。如,通过命令行跑一个开发版本的服务器、设置数据库等。
1.1.2 flask-script安装
pip install -i https://mirrors.aliyun.com/pypi/simple flask-script
1.1.3 flask-script的使用
1.1.3.1 创建Manager实例
from apps import create_app
from flask_script import Manager
app = create_app()
manager = Manager(app=app)
1.1.3.2 初始化实例出错与解决
- 错误提示
Traceback (most recent call last):
File "E:\VirtualEnv\RushInFlask\day03\app.py", line 2, in <module>
from flask_script import Manager
File "E:\VirtualEnv\RushInFlask\lib\site-packages\flask_script\__init__.py", line 15, in <module>
from flask._compat import text_type
ModuleNotFoundError: No module named 'flask._compat'
2. 解决方法一:
Flask版本降低到1.1.2
pip install flask==1.1.2
- 解决方法二:
保持Flask2版本不变,修改E:\VirtualEnv\RushInFlask\lib\site-packages\flask_script_init_.py 第15行代码
from flask._compat import text_type
修改为
from flask_script._compat import text_type
1.1.4 终端启动
python app.py runserver -p 5002
1.1.4.1 查看runserver参数
python app.py runserver --help
1.1.5 自定义添加manager命令
1.1.5.1 装饰器添加命令
@manager.command
def init():
print('初始化...')
1.1.5.2 使用自定义命令
python app.py init
1.2.1 安装pymysql
pip install -i https://mirrors.aliyun.com/pypi/simple pymysql
1.2.2 VC_redist.x64.exe
1.2.3 安装numpy+mkl
- 升级pip: python.exe -m pip install --upgrade pip
- 下载numpy+mkl:https://download.lfd.uci.edu/pythonlibs/x6hvwk7i/numpy-1.22.2+mkl-cp310-cp310-win_amd64.whl
- 安装:pip install numpy-1.22.2+mkl-cp310-cp310-win_amd64.whl
1.2.4 安装flask-sqlalchemy
pip install -i https://mirrors.aliyun.com/pypi/simple flask-sqlalchemy
二、后端知识要点
2.1 数据库
三、前端知识要点
四、项目完整代码
4.1 项目目录结构
4.2 后端代码
4.2.1 配置文件settings.py
4.2.2 项目启动app.py
4.2.3 user包初始化__init__.py
4.2.4 user子应用model.py
4.2.85 user子应用视图view.py
4.3 前端代码
4.3.1 项目基础母版base.html
4.3.2 user子应用注册页面register.html
4.3.3 user子应用用户展示页面
4.3.4 user子应用用户更新页面update.html