3.3.6-PythonWeb框架 - 使用Flask框架操作数据库

3.3.6-PythonWeb框架 - 使用Flask框架操作数据库【多选一:Flask系列】

原文链接: https://blog.csdn.net/m0_52680439/article/details/134391959

第1关:查询操作

#config.py
class Config(object):
    #连接数据库
    # ********* Begin *********#
    SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:123123@localhost:3306/web?charset=utf8'
    SQLALCHEMY_TRACK_MODIFICATIONS=True
    # ********* End *********#
#models.py
from app import db
 
class Message(db.Model):
    #表模型
    #********* Begin *********#
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    provincename=db.Column(db.String(255))
    cityname=db.Column(db.String(255))
    ct=db.Column(db.Integer)
    #********* End *********#
#test.py
from app import db,app
from models import Message
from flask import render_template
 
@app.route("/select")
def select():
    '''
    首先根据ct这一列进行序排序
    然后将每一列的数据转换成一个列表
    '''
    # ********* Begin *********#
    result = Message.query.order_by(Message.ct.desc()).all()
    province = list(map(lambda x:x.provincename,result))
    city = list(map(lambda x:x.cityname,result))
    count = list(map(lambda x:x.ct,result))
    # ********* End *********#
    return render_template("index.html",city=city,count=count, province=province)
@app.route("/")
def home():
    return render_template("home.html")
 
if __name__ == "__main__":
    app.run(debug = True,host="0.0.0.0",port=8080)

第2关:增加操作

#config.py
class Config(object):
    #连接数据库
    # ********* Begin *********#
    SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:123123@localhost:3306/web?charset=utf8'
    SQLALCHEMY_TRACK_MODIFICATIONS=True
    # ********* End *********#
#models.py
from app import db
 
class Message(db.Model):
    #表模型
    # ********* Begin *********#
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    provincename=db.Column(db.String(255))
    cityname=db.Column(db.String(255))
    ct=db.Column(db.Integer)  
    # ********* End *********#
#test.py
from app import app,db
from models import Message
from flask import Flask,render_template,request,redirect
 
@app.route('/insert',methods=['GET','POST'])
def insert():
    #进行添加操作
    # ********* Begin ********* #
    newMessage = Message(provincename='纽约州',cityname="纽约市",ct=1205)
    db.session.add(newMessage)
    db.session.commit()
    # ********* End ********* #
    return redirect('/')
 
@app.route("/insert_page")
def insert_page():
    #跳转至添加页面
    return render_template("insert.html")
 
@app.route("/")
def home():
    listCity = Message.query.order_by(Message.id.desc()).all()
    return render_template("home.html",city_list = listCity)
 
if __name__ == "__main__":
    app.run(debug=True,host="0.0.0.0", port=8080)

第3关:删除操作

#config.py
class Config(object):
    #连接数据库
    # ********* Begin *********#
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123123@localhost:3306/web?charset=utf8" 
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    # ********* End *********#
#models.py
from app import db
 
class Message(db.Model):
    #表模型  定义四个字段 id ct provincename cityname
    # ********* Begin *********#
    id=db.Column(db.Integer, primary_key=True)  
    provincename = db.Column(db.String(255))
    cityname = db.Column(db.String(255))
    ct = db.Column(db.Integer)
    # ********* End *********#
#test.py
from app import db,app
from models import Message
from flask import render_template,redirect,request
 
@app.route("/delete",methods=['GET'])
def delete():
    #操作数据库删除目标数据   前台传入的参数为  id
    # ********* Begin *********#
    u=Message.query.filter_by(id=1).first()
    db.session.delete(u)
    db.session.commit()
    # ********* End *********#
    #删除完重定向到主页
    return redirect('/')
 
@app.route("/")
def home():
    listCity = Message.query.order_by(Message.id.desc()).all()
    return render_template("home.html",city_list = listCity)
 
if __name__ == "__main__":
    app.run(debug = True,host="0.0.0.0",port=8080)

第4关:修改操作

from app import app,db
from models import Message
from flask import render_template
from flask import redirect,request
import pymysql
 
 
@app.route("/alter",methods=['POST'])
def alter():
    #接收参数,修改数据
    # ********* Begin *********#
    u=Message.query.filter_by(id=1).first()
    u.ct=100000
    db.session.commit()
    # ********* End *********#
    return redirect('/')
 
#修改页面
@app.route("/alter_page",methods=['GET'])
def alter_page():
    id = request.args.get("id")
    province = request.args.get("provincename")
    cityname = request.args.get("cityname")
    ct = request.args.get("ct")
    message = Message(id = id,provincename=province,cityname=cityname,ct=ct)
    print(message)
    return render_template("alter.html",message = message)
 
@app.route("/")
def home():
    listCity = Message.query.order_by(Message.id.desc()).all()
    return render_template("home.html",city_list = listCity)
 
if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=8080)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值