flask搜索mysql_数据库|Flask实现简单搜索功能

数据库|Flask实现简单搜索功能

2021-01-16

问题描述用Flask实现简单搜索功能主要是通过form的方式传值,再到数据库中查询。下面是数据库的内容,主要是实现对content进行模糊匹配。图 1数据库内容解决方案1.首先打开pycharm,构建一个最简单的flask应用。#search.pyfrom flask import Flaskapp = Flask(__name__)@app.route("/")def index():return render_template("search.html")if __name__ =="__main__":app.run()2.其次,连接数据库进行搜索,要引入SQLAlchemy包。代码示例:#search.pyfrom flask_sqlalchemy import SQLAlchemyapp.config["SQLALCHEMY_DATABASE_URI"]="mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8"app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = True #root用户名123456密码 test数据库3.最后,需要从form表单拿到数据,进行数据库查询操作。代码示例:@app.route("/", methods=["post", "get"])def search():content = request.form.get("content") #需要查询的内容if content is None:content = " "quotes = Quotes.query.filter(Quotes.content.like("%"+content+"%")if content is not None else "").all() #查询跟content有关的数据,返回结果为列表return render_template("search.html",quotes = quotes) #将查询结果返回到前端#search,html

Title
名字 {{i.name}} 内容 {{i.content}}
效果如下:图 2、3 效果图一个简单的查询功能就完成了,这里只是做了单条件模糊查询。接下来介绍多条件模糊查询和精确查询。代码示例:#多条件模糊查询content= Quotes.query.filter(Quotes.id.like("%" + id + "%") if id is not None else "",Quotes.name.like("%" + name + "%") if name is not None else "",Quotes.content.like("%" + content + "%") if content is not None else "").all()#单条件精确查询content= Quotes.query.filter_by(id=id).all()#多条件精确查询content= Quotes.query.filter_by(id=id,name=name).all()最后附上完整代码:#search.pyfrom flask import Flask, config, render_template, request, flash, url_for, sessionfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config.from_object(config)app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:1914571065lyj@127.0.0.1:3306/java2019?charset=utf8"app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = Truedb = SQLAlchemy(app)class Quotes(db.Model):id = db.Column(db.Integer, primary_key=True, comment="ID")name = db.Column(db.String(255), unique=True, comment="名称")content = db.Column(db.String(255), comment="内容")@app.route("/", methods=["post", "get"])def search():content = request.form.get("content")if content is None:content = " "quotes = Quotes.query.filter(Quotes.content.like("%"+content+"%")if content is not None else "").all()return render_template("search.html",quotes = quotes)if __name__ == "__main__":app.run(debug=True)#search.pyTitle
名字 {{i.name}} 内容 {{i.content}}
END编 辑 | 王文星责 编 | 刘玉江where2go 团队微信号:算法与编程之美

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://image95.pinlue.com/image/50.jpg

你可能感兴趣的:(flask搜索mysql)