当前位置: 首页 > news >正文

想做电商怎么入手视频平台seo什么意思

想做电商怎么入手视频,平台seo什么意思,深圳的宝安区繁华吗,jsp做网站实例教程想要用flask_sqlalchemy结合Blueprint分模块写一下SQL的增删改查接口,结果发现有循环引入问题。 一开始,我在app.py中使用db SQLAlchemy(app)创建数据库对象;并且使用app.register_blueprint(db_bp, url_prefix/db)注册蓝图。 这使得我的依…

想要用flask_sqlalchemy结合Blueprint分模块写一下SQL的增删改查接口,结果发现有循环引入问题。

一开始,我在app.py中使用db = SQLAlchemy(app)创建数据库对象;并且使用app.register_blueprint(db_bp, url_prefix='/db')注册蓝图。

这使得我的依赖关系是这样的。db.py → app,py 中的db对象;app.py → db,py 用于注册蓝图,产生了循环引用。

接着我学着使用一个model.py来存放db变量,但是使用错误,下面是错误的示例。

我在model.py使用db = SQLAlchemy()创建了未注册的db对象

在app.py中使用db.init_app(app)来连接数据库,注册db对象

但在db.py中错误引用了app.py中的db对象,再次产生了循环引用

解决方法,在db.py中引入model.py中的db对象即可。

此时的依赖关系如下,db.py和app.py → model.py 用于获取db对象;app.py → db.py 用于注册蓝图。

 

看到一些比较麻烦的解决方案,1. 把db变量变成一个web接口,用请求的方式获取。

2. 把app注册db和blueprint的操作都放入main函数中。或者,先封装到def create_app()函数中,然后在main函数中调用。

参考 使用Flask-SQLAlchemy和Blueprints循环导入db引用 | 那些遇到过的问题

 

dao.py

from flask import Blueprint, request, jsonify
from models import db
from models import KnowledgeEntity
from sqlalchemy.exc import SQLAlchemyError# 创建视图函数蓝图
app = Blueprint('KnowledgeDAO', __name__)'''
word = db.Column(db.String(255), primary_key=True)
content = db.Column(db.Text, unique=True, nullable=False)
priority = db.Column(db.String(255), unique=True, nullable=False)
association = db.Column(db.JSON, unique=True, nullable=False)
'''# 创建用户
@app.route('/add', methods=['POST'])
def create_user():data = request.get_json()word = data.get('word')content = data.get('content')priority = data.get('priority')association = data.get('association')if not word or not priority:return jsonify({'message': 'Both word and priority are required'}), 400entity = KnowledgeEntity(word=word, content=content, priority=priority, association=association)try:db.session.add(entity)db.session.commit()return jsonify(1), 201except SQLAlchemyError as e:db.session.rollback()  # 回滚事务以撤销之前的操作error_message = str(e)return f'Error: {error_message}', 500# 查询所有用户
@app.route('/selectAll', methods=['POST'])
def get_users():users = KnowledgeEntity.query.all()print('users',users)# user_list = [{'id': user.id, 'username': user.username, 'email': user.email} for user in users]return jsonify(1)

 model.py

from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class KnowledgeEntity(db.Model):__tablename__ = 'knowledge'word = db.Column(db.String(255), primary_key=True)content = db.Column(db.Text, unique=True, nullable=False)priority = db.Column(db.String(255), unique=True, nullable=False)association = db.Column(db.JSON, unique=True, nullable=False)def __init__(self, word, content=None, priority=None, association=None):self.word = wordself.content = contentself.priority = priorityself.association = association

 app.py(改进后的)

from flask import Flask, request, jsonify,g
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from models import db
# 导入视图函数
from DAO import KnowledgeDAOapp = Flask(__name__)
# 配置选项,用于控制 Flask 在将 Python 字典转换为 JSON 数据时是否按照键的字母顺序对键进行排序,默认情况下,它的值为 True,表示会对键进行排序。
app.config['JSON_SORT_KEYS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1:3306/ennote'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False# 注册跨域
CORS(app, resources=r'/*')  # 注册CORS, "/*" 允许访问所有api# 连接数据库
db.init_app(app)# 注册蓝图
app.register_blueprint(KnowledgeDAO.app, url_prefix='/knowledge')if __name__ == '__main__':# 创建应用上下文with app.app_context():# 在这里执行需要应用上下文的操作# 例如,访问数据库或使用Flask的全局变量db.create_all()app.run(host='127.0.0.1', port=5000, debug=True)

http://www.wangmingla.cn/news/92960.html

相关文章:

  • 中国建设教育网站官方淘宝关键词
  • 梵克雅宝戒指百度产品优化排名软件
  • 太仓网站制作许昌网络推广公司
  • 常见的网站空间有哪些网站优化排名公司哪家好
  • 河北大城县网站建设公司阿里巴巴logo
  • 网站建设登录注册怎么做怎么去做网络推广
  • 网站域名注册证书查询东莞服务好的营销型网站建设
  • 昆明哪个公司做网站建设最好店铺如何运营和推广
  • 广州越秀区天气预报uc浏览器关键词排名优化
  • 网站开发中遇到的主要问题深圳疫情防控最新消息
  • 婚纱摄影网seoshanghai net
  • 网站项目ppt怎么做武汉网络推广公司
  • 网站建设成本估算百度排名工具
  • 怎么在自己的电脑做网站网络营销是网上销售吗
  • 资金盘做网站百度引流推广
  • 公司做网站之前要准备什么软件武汉seo优化分析
  • 中山精品网站建设新闻无限制访问国外的浏览器
  • 花店网页设计模板素材杭州seo哪家好
  • 免费网站开发东莞seo推广机构帖子
  • 网站的主机选择seo排名赚app是真的吗
  • 网站推广的内涵小程序开发费用明细
  • 什么值得买网站模版营销型网站方案
  • 廊坊网站建站网站汕头seo排名收费
  • 建站网络网络代运营推广
  • 哪里有做营销型网站的公司网站提交收录软件
  • 池州做网站的公司百度官网首页入口
  • 2017商会网站建设方案seo整站优化外包公司
  • asp做的网站如何发布关键词排名方法
  • 学什么可以做推广网站百度网盘服务电话6988
  • 中铁集团2021招聘信息北京seo方法