网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月07日漏签0天
flask吧 关注:1,492贴子:1,255
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回flask吧
>0< 加载中...

sqlchemy无法把前端的数据传入mysql

  • 只看楼主
  • 收藏

  • 回复
  • 高山流水
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
麻烦大神帮忙看一下,sqlchemy无法把数据传到mysql数据库,数据库里面一直是空的。代码如下
from flask import Flask, render_template, flash, request,redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired, EqualTo
import pymysq
app = Flask(__name__)
# 数据库配置:数据库地址和关闭自动跟踪修改
app.config['SQLALCHEMY_URI'] = 'mysql+pymysql://root:wyx7208801@127.0.0.1/flask_books'
app.config['SQLALCHEMY_TRANCE_MODIFICATIONS'] = False
app.secret_key = 'itmaima'
db = SQLAlchemy(app)
# 定义书和作者模型
# 作者模型
class Author(db.Model):
# 表名
__tablename__ = 'authors'
# 字段
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
books = db.relationship('Book', backref='author')
class Book(db.Model):
__tablename__ = 'books'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
author_id = db.Column(db.Integer, db.ForeignKey('authors.id'))
# 自定义表单类
class AuthorForm(FlaskForm):
author = StringField('作者', validators=[DataRequired()])
book = StringField('书籍', validators=[DataRequired()])
submit = SubmitField('提交')
@app.route('/', methods=['POST', 'GET'])
def index():
#查询所有的作者信息
author_form = AuthorForm()
authors = Author.query.all()
if author_form.validate_on_submit():
author_name = author_form.author.data
book_name = author_form.book.data
author = Author.query.filter_by(name=author_name).first()
if author:
book = Book.query.filter_by(name=book_name).first(
if book:
flash('已存在重复书籍')
else:
try:
new_book = Book(name=book_name, author_id=author.id)
db.session.add(new_book)
db.session.commit()
except Exception as e:
print(e)
flash('添加书籍失败')
db.session.rollback()
else:
try:
new_author = Author(name=author_name)
db.session.add(new_author)
db.session.commit()
new_book = Book(name=book_name, author_id=new_author.id)
db.session.add(new_book)
db.session.commit()
except Exception as e:
flash('添加作者和书籍失败')
print(e)
db.session.rollback(
else:
if request.method == 'post':
flash('参数不全'
return render_template('index.html', authors=authors, form=author_form)
@app.route('/delete_book/<book_id>')
def delete_book(book_id)
book = Book.query.get(book_id)
if book:
try:
db.session.delete(book)
db.session.commit()
except Exception as e:
print(e)
flash('删除书籍出错')
db.session.rollback()
else:
flash('找不到书籍')
return redirect(url_for('index')) # url_for需要传入视图函数名,返回该视图函数和对应的路由地址
@app.route('/delete_author/<author_id>')
def delete_author(author_id):
author = Author.query.get(author_id)
if author:
try:
book_delete = Book.query.filter_by(author_id=author.id).first()
# 查询之后直接删除
# book_delete = Book.query.filter_by(author_id=author_id).delete()
db.session.delete(book_delete)
db.session.delete(author)
db.session.commit()
except Exception as e:
print(e)
flash('删除作者失败')
else:
flash('未找到作者')
db.session.rollback()
return redirect(url_for('index'))
if __name__ == '__main__':
db.drop_all()
db.create_all()
au1 = Author(name='wang')
au2 = Author(name='yu')
au3 = Author(name='xuan')
db.session.add_all([au1, au2, au3])
db.session.commit()
book1 = Book(name='tian', author_id=au1.id)
book2 = Book(name='xia', author_id=au1.id)
book3 = Book(name='gui', author_id=au2.id)
book4 = Book(name='xin', author_id=au3.id)
db.session.add_all([book1, book2, book3, book4])
db.session.commit()
app.run(debug=True)


  • 独白读
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
建flask_books这个数据库了吗?在什么地方报的错,你把错误提示发出来啊


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回flask吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示