5.功能实现
5.1Flask实现
- 模型层(Model):数据类(bookModel,readerModel,recordModel,userModel)负责与MQYSQL数据库进行数据交互和数据存储。
- 视图层(View):网页静态文件HTML,js,css
- 控制层(Controller):静态路由
5.2配置相关文件
数据库参数设置![](https://img-blog.csdnimg.cn/c11ee46eea7b4dec8863f5b1610027f2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6ZmG5LmL5piC55qE5bCP6aKc5pyr,size_20,color_FFFFFF,t_70,g_se,x_16)
import os
MEMBER_USER_ID='MEMBERREGISTER'
SECRET_KEY = os.urandom(24)
USERNAME = 'root'
PASSWORD = '123456'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'web_stu_lib'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOST, PORT, DATABASE)
# {} + {} ://{}:{}@{}:{}/{}?charset=utf8
#创建数据库链接显示
SQLALCHEMY_DATABASE_URI = DB_URI
# 动态追踪修改设置,如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONS=False
#查询时会显示原始SQL语句
SQLALCHEMY_ECHO = True
ADMIN_USER_ID = 'HEBOANHEHE'
#上传到本地
UEDITOR_UPLOAD_PATH = os.path.join(os.path.dirname(__file__),'static','images')
调用flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy()
设置manager利用命令段配置数据库
from flask_script import Manager
#Manager类追踪所有在命令行中调用的命令和处理过程的调用运行情况;
#Flask Script和Flask本身的工作方式类似,只需定义和添加从命令行中被Manager实例调用的命令;
from flask_migrate import Migrate,MigrateCommand
from test import create_app
from exts import db
from apps.admin import models as admin_models
app=create_app()
#让python支持命令行工作
manager=Manager(app)
#使用migrate绑定app和db
Migrate(app,db) #Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。
# 3. 向manager对象中添加数据库的操作命令
# 第一个参数是给这条命令取的名字叫什么,关于数据库的我们通常叫db
# 第二个参数就是具体的命令
manager.add_command('db',MigrateCommand)
'''
manager的作用:在终端可以使用指令来操作程序
option装饰后的作用:可以传递参数
使用场景:创建一些敏感数据(如后台管理员),批量添加测试数据等等…
终端中操作指令 : python 文件名 方法名 -option xxx -option xxxxx
python manager.py create_user -u xxx --p xxx -e xxx@qq.com
'''
# 创建管理员 --manager的作用: 是在终端使用命令, option的作用:装饰的之后,可以传递参数
# @manager.option('-u','--uid',dest='uid')
@manager.option('-u', '--account', dest='account')
@manager.option('-p', '--password', dest='password')
@manager.option('-e', '--email', dest='email')
def create_user(account,password,email):
user=admin_models.UserModel(Account=account,Password=password,Email=email)
db.session.add(user)
db.session.commit()
print("用户添加成功!")
if __name__=='__main__':
manager.run()
实例化flask
from flask import Flask
from apps.admin.views import bp as admin_bp
from exts import db
def create_app():
app = Flask(__name__)
app.register_blueprint(admin_bp)
app.config.from_object('config')
db.init_app(app)
return app
if __name__ == '__main__':
app = create_app()
app.run(host='127.0.0.1',port=5000,debug=True)
初始化完成后即可进入,后续将介绍不同路由的功能