Flask实现增删改查(CURD)操作

发布一下 0 0

主要代码app.py

from flask import Flask, render_template, redirect, request, url_forfrom flask_sqlalchemy import SQLAlchemyfrom flask_migrate import Migrateapp = Flask(__name__)'''    数据库的配置信息'''HOSTNAME = '127.0.0.1'POST = '3306'DATABASE = 'mytest'USERNAME = 'root'PASSWORD = '123456'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOSTNAME, POST, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)migrate=Migrate(app,db)'''    使用flask_migrate把数据模型映射到MySql数据中    数据模型完成后,用三个命令把模型映射到数据库中    打开Pycharm的Terminal    flask db init->flask db migrate->flask db upgrade    这样就可以完成映射'''class Phone(db.Model):    __tablename__ = 'phone'    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    phonename = db.Column(db.String(20), nullable=False)    price = db.Column(db.Integer, nullable=False)class Person(db.Model):    __tablename__ = 'person'    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    name = db.Column(db.String(20), nullable=False)    age = db.Column(db.Integer, nullable=False)    pid = db.Column(db.Integer, db.ForeignKey('phone.id'))    phone = db.relationship('Phone', backref='person')'''    添加数据'''@app.route('/add', methods=['get', 'post'])def add():    personname = request.form.get('personname')    age = request.form.get('age')    phonename = request.form.get('phonename')    price = request.form.get('price')    person = Person(name=personname, age=age)    phone = Phone(phonename=phonename, price=price)    person.phone = phone    db.session.add(person)    db.session.add(phone)    db.session.commit()    return redirect('/')'''    查询数据'''@app.route('/search', methods=['get', 'post'])def search():    persons = Person.query.all()    return render_template('search.html', person=persons)'''    根据id获取一条,需要修改的数据'''@app.route('/get_id/<pid>', methods=['get', 'post'])def get_id(pid):    pe = Person.query.filter_by(id=pid)[0]    getId = request.form.get('btn')    return render_template('query_id.html', pe=pe)'''    修改数据'''@app.route('/upgrade/<int:peid>', methods=['get', 'post'])def upgrade(peid):    pname = request.form.get('pname')    page = request.form.get('page')    pphone=request.form.get('pphone')    pprice=request.form.get('pprice')    person = Person.query.filter_by(id=peid)[0]    person.name = pname    person.age = page    person.phone.phonename=pphone    person.phone.price=pprice    db.session.commit()    return redirect(url_for('search'))'''    根据id删除数据'''@app.route('/delete/<int:did>', methods=['get', 'post'])def delete(did):    Person.query.filter_by(id=did).delete()    # Person.phone.query(id=did).delete()    db.session.commit()    return redirect(url_for('search'))@app.route('/')def index():    return render_template('add.html')if __name__ == '__main__':    app.run()

页面模板的父模板base.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <link rel="stylesheet" href="{{ url_for('static',filename='bootstrap/css/bootstrap.css') }}">    <script src="{{ url_for('static',filename='bootstrap/js/jquery-3.5.1.js') }}"></script>    <script src="{{ url_for('static',filename='bootstrap/js/bootstrap.js') }}"></script>    <title>{% block title %}{% endblock %}</title>    {% block head %}{% endblock %}</head><body><div class="container">    {% block body %}{% endblock %}</div></body></html>

添加数据的页面add.html

{% extends  'base.html' %}{% block title %}增加数据{% endblock %}{% block head %}{% endblock %}{% block body %}    <div class="row">        <div class="col"></div>        <div class="col-5" style="margin-top: 30px">            <form action="{{ url_for('add') }}" method="post">                <div class="form-group row">                    <label class="col-sm-2 col-form-label">姓名:</label>                    <div class="col-sm-10">                        <input type="text" name="personname" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">年龄:</label>                    <div class="col-sm-10">                        <input type="text" name="age" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">手机:</label>                    <div class="col-sm-10">                        <input type="text" name="phonename" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">价格:</label>                    <div class="col-sm-10">                        <input type="text" name="price" class="form-control">                    </div>                </div>                <div class="form-group " style="float: left;text-align: right">                    <button type="submit" class="btn btn-primary">添加</button>                </div>            </form>            <div class="form-group " style="text-align: right">                <form action="{{ url_for('search') }}" method="post">                    <button type="submit" class="btn btn-primary">查询</button>                </form>            </div>        </div>        <div class="col"></div>    </div>{% endblock %}

添加数据的页面实际效果图

Flask实现增删改查(CURD)操作

查询数据的页面代码search.html

{% extends  'base.html' %}{% block title %}查询数据{% endblock %}{% block head %}{% endblock %}{% block body %}    <table class="table table-bordered table-hover" style="text-align: center;margin-top: 30px">        <thead>        <tr>            <th scope="col">编号</th>            <th scope="col">姓名</th>            <th scope="col">年龄</th>            <th scope="col">手机</th>            <th scope="col">价格</th>            <th scope="col" colspan="2">操作</th>        </tr>        </thead>        <tbody>        {% for item in person %}            <tr>                <th scope="row">{{ item.id }}</th>                <td>{{ item.name }}</td>                <td>{{ item.age }}</td>                <td>{{ item.phone.phonename }}</td>                <td>{{ item.phone.price }}</td>                <td>                    <form action="{{ url_for('get_id',pid=item.id) }}" method="post">                        <button type="submit" class="btn btn-primary">修改</button>                    </form>                </td>                <td>                    <form action="{{ url_for('delete',did=item.id) }}" method="post">                        <button type="submit" class="btn btn-danger btn-sm">删除</button>                    </form>                </td>            </tr>        {% endfor %}        </tbody>    </table>{% endblock %}

查询数据的页面实际效果图

Flask实现增删改查(CURD)操作

根据id获取一条需要修改的数据的页面query_id.html

{% extends  'base.html' %}{% block title %}增加数据{% endblock %}{% block head %}{% endblock %}{% block body %}    <div class="row">        <div class="col"></div>        <div class="col-5" style="margin-top: 30px">            <form action="{{ url_for('upgrade',peid=pe.id) }}" method="post">                <div class="form-group row">                    <label class="col-sm-2 col-form-label">姓名:</label>                    <div class="col-sm-10">                        <input type="text" name="pname" value="{{ pe.name }}" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">年龄:</label>                    <div class="col-sm-10">                        <input type="text" name="page" value="{{ pe.age }}" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">手机:</label>                    <div class="col-sm-10">                        <input type="text" name="pphone" value="{{ pe.phone.phonename }}" class="form-control">                    </div>                </div>                <div class="form-group row">                    <label class="col-sm-2 col-form-label">价格:</label>                    <div class="col-sm-10">                        <input type="text" name="pprice" value="{{ pe.phone.price }}" class="form-control">                    </div>                </div>                <div class="form-group " style="text-align: right">                    <button type="submit" class="btn btn-primary">修改</button>                </div>            </form>        </div>        <div class="col"></div>    </div>{% endblock %}

获取一条数据的实际效果图:

Flask实现增删改查(CURD)操作

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/69639.html