C++、初学者 2024-11-13 10:46 采纳率: 84%
浏览 5
已结题

flask实现搜索框访问数据库

第一页flask:
import math
from flask import Flask,abort,render_template,session,request
from flask_sqlalchemy import SQLAlchemy
app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:123456@localhost:3306/woniunote?charset=utf8'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
db = SQLAlchemy(app)

@app.route('/search/<kw1>')
def home(kw1):
    from module.article import Article
    a1=Article()
    result=a1.find_by_headline(kw1)
    print(result)
    return result
@app.route('/')
def form():
    from module.article import Article
    a1 = Article()
    s=a1.cha()
    return s
    # return render_template('1.html')
@app.route('/submit',methods=['POST'])
def submit():
    kw1=request.form.get('kw')
    from module.article import Article
    a1=Article()
    result=a1.find_by_headline(kw1)
    print(result)
    return result
@app.route('/upload',methods=['POST'])
def upload():
    file=request.files.get('file')
    if file:
        filename=file.filename
        file.save(f'E:/{filename}')
        return f'File uploaded successfully:{filename}'
    return 'NO file upload'

if __name__=='__main__':
    app.run(debug=True)
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/4b3f7daa845749439e127fe4d723fb4e.png "#left")

第二页代码
import time
from flask import session
from sqlalchemy import Table
from main1 import db

class Article(db.Model):
    __table__=Table('article',db.metadata,autoload_with=db.engine,mysql_bind=db.engine)
    def model_list(result):

        list=[]
        for row in result:
            dict={}
            for k,v in row.__dict__.items():
                if not k.startswith('_sa_instance_state'):
                    dict[k]=v
            list.append(dict)
        print('后:',list)
        return list
    def find_by_headline(self,kw1):
        result1=db.session.query(Article).filter(
            Article.headline.like('%'+kw1+'%')).all()
        print('qian',result1)
        for i in result1:
            i.content='内容test'
        result=Article.model_list(result1)
        return result
    def cha(self):
        a1=db.session.query(Article).all()
        print(a1)

img

img

请问一下为什么会一直报这个错误,另一章是网页截图,我需要实现flask能有一个搜索框搜索内容并且能访问到Mysql里面,如果各位有更好实现的方法希望分享一下,感激不尽

  • 写回答

29条回答 默认 最新

  • 阿里嘎多学长 2024-11-13 11:00
    关注
    获得0.30元问题酬金

    阿里嘎多学长整理、AIGC生成:

    Flask 实现搜索框访问数据库

    问题描述:使用 Flask 框架实现搜索框访问数据库。

    根据提供的代码, Flack 项目已经导入了必要的库,包括 math、Flask、abort、render_template 和 session。下面,我们将实现搜索框访问数据库的基本步骤:

    1. 在搜索框中获取搜索关键词
    2. 使用关键词对数据库进行查询
    3. 将查询结果返回至前端

    以下是一个简单的示例代码:

    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost/dbname'
    db = SQLAlchemy(app)
    
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80), nullable=False)
        email = db.Column(db.String(120), nullable=False)
    
    @app.route('/search', methods=['GET'])
    def search():
        keyword = request.args.get('keyword')
        users = User.query.filter(User.name.like('%'+keyword+'%')).all()
        return render_template('search.html', users=users)
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    在上面的示例代码中,我们首先创建了一个 Flask 应用程序,并配置了 MySQL 数据库连接。然后,我们定义了一个 User 模型,并使用 Flask-SQLAlchemy 对象来创建数据库表。

    /search 路由中,我们获取搜索关键词,并使用 Flask-SQLAlchemy 的 query 方法对数据库进行查询。最后,我们将查询结果返回至前端的 search.html 模板中。

    在前端,搜索框可以使用以下 HTML 代码实现:

    <form action="/search" method="get">
        <input type="text" name="keyword" placeholder="请输入关键词">
        <input type="submit" value="搜索">
    </form>
    
    <ul>
        {% for user in users %}
            <li>{{ user.name }} ({{ user.email }})</li>
        {% endfor %}
    </ul>
    

    在上面的 HTML 代码中,我们使用了 Flask 的模板_engine来循环遍历查询结果,并显示用户信息。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 修改了问题 11月13日
  • 修改了问题 11月13日
  • 创建了问题 11月13日

悬赏问题

  • ¥15 halcon联合c#遇到了问题不能解决
  • ¥15 xshell无法连接提示ssh服务器拒绝密码
  • ¥15 AT89C52单片机C语言关于串口通信的位操作
  • ¥20 需要步骤截图(标签-服务器|关键词-map)
  • ¥50 gki vendor hook
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?