flask框架操作MySQL数据库

1.配置URL连接数据库
2.在MySQL中建立一张表


from flask import Flask 
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__) 

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:3202336152@localhost/student?charset=utf8'  #配置URL
db = SQLAlchemy(app)  #创建数据库对象

class Article(db.Model):  #创建数据表模型
    __tablename__ = 'information'  #表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  #声明各个列内容
    name = db.Column(db.String(100), nullable=False)
    number = db.Column(db.Integer, nullable=False)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    db.drop_all()  #清除表内容
    db.create_all()  #新创建表
    app.run()
    

通过命令可以看见已经生成MySQL表
在这里插入图片描述

整体代码实现

  • python 源代码
from flask import Flask, render_template,flash,request
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField,IntegerField
from wtforms.validators import DataRequired

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:320123@localhost/student?charset=utf8'
app.config['SQLALCHEMY_TRACK_MODIFCATIONS'] = False
app.secret_key = 'huanyu'

db = SQLAlchemy(app)

class Stu(db.Model):
    __tablename__ = 'information'
    id = db.Column(db.BigInteger, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), primary_key=True, nullable=True)
    xuehao = db.Column(db.BigInteger,  nullable=True)
    number = db.Column(db.BigInteger, nullable=True)

#自定义表单类
class Login(FlaskForm):
     name = StringField('姓名:', validators=[DataRequired()])   #验证函数
     xuehao = IntegerField('学号:', validators=[DataRequired()])
     number = IntegerField('电话:', validators=[DataRequired()])
     submit = SubmitField('提交')

@app.route('/',methods = ['GET','POST'])
def index():
    stu = Login()
    #调用WTF函数实现验证
    if stu.validate_on_submit():
        #验证通过获取数据
        stu_name = stu.name.data
        stu_xuehao = stu.xuehao.data
        stu_number = stu.number.data
        #添加数据
        try:
            new_stu = Stu(name=stu_name, xuehao=stu_xuehao, number=stu_number)
            db.session.add(new_stu)
            db.session.commit()
        except Exception as e:
            print(e)    #打印错误类型
            flash('添加失败')
            db.session.rollback()
    else:
        #验证不通过提示错误
        if request.method == 'POST':
            flash('参数不全')

    return render_template('index.html', stu=stu)

if __name__ == '__main__':
    #db.drop_all()  删除表
    #db.create_all()  新建表
    app.run(debug=True)

  • HTML 源代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>武汉工程大学</title>
    <style type="text/css">
	*{
		background-color:write;
	}
	#tou p{
    font-size: 40px;
    text-align: center;
      }
	#qq {
	text-align: center;
	font__size:25px;
	}
    </style>
</head>
<body>

<div id="tou">
    <p>学生信息填写</p>
</div>

  <HR style="FILTER: alpha(opacity=100,finishopacity=0,style=3)" width="100%" color=#201E1E SIZE=6>

<div align="center" id="qq">
    <form method="post">
        {{ stu.csrf_token }}
        {{ stu.name.label }} <p>{{ stu.name }}</p> <br>
        {{ stu.xuehao.label }} <p>{{ stu.xuehao }}</p> <br>
        {{ stu.number.label }} <p>{{ stu.number }}</p> <br>
        {{ stu.submit }} <br>

    {% for message in get_flashed_messages() %}
            {{ message }}
        {% endfor %}

</form>

</div>

</body>
</html>

实现效果
在这里插入图片描述
提交后即可保存本地数据库…

坚持是检验真理的唯一标准
come on — 寰宇

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值