栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

留言板(python+flask+sql server)保存在数据库

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

留言板(python+flask+sql server)保存在数据库

目录

数据库留言表的创建

留言板表单的实现

跳转到留言页面

接收表单数据,并入数据库

留言数据的删除

效果展示:

留言表单页

留言页面

留言成功


学习内容:简单实现:flask框架+前端展示网页效果,python通过pymssql模块操作SQL server ,最终实现留言功能。其留言数据存储在sql server表中


  • 数据库留言表的创建

  • 列名:id编号  昵称  留言信息  留言时间

代码:  --identity(1, 1) 起始值1,自增量1,且设置id为主键

create table liuyan
(
id int  identity(1, 1)  not null primary key, --identity(1, 1) 起始值1,自增量1,且设置ID为主键
name nvarchar(30) not null,
info nvarchar(50) not null,
date datetime not null default getdate()
)
 

效果:

  • 留言板表单的实现

  • 先连接SQL server,通过pymssql操作SQL语句,再调用render_template()方法指向HTML文件。贴上pymssql官方文档:pymssql module reference — pymssql 2.1.4 documentation
import pymssql
from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/')
def index():
    sql2 = 'select * from liuyan'
    data = sql(sql2)

    print(data)

    return render_template('table.html', data=data)


def sql(sql2):
    connect = pymssql.connect(server='LAPTOP-DUHL1TTUYXHLHM',  # 服务器名或本地IP
                              user='sa',  # 账户
                              password='*****',  # 自己设置的密码
                              database='yxh2',
                              as_dict=True)  # 数据库内容以字典格式输出
    if connect:
        print("恭喜你,连接成功 !!!")
    cur = connect.cursor()  # 创建游标对象
    connect.commit()  # 提交数据
    cur.execute(sql2)  # 执行sql语句

    data = cur.fetchall()  # 查看sql语句执行的结果

    connect.close()  # 关闭连接
    return data


if __name__ == "__main__":
    app.run(debug=True)
  • table.html文件




    
    
    
    表单
    



    
{% for i in data %} {% endfor %}
留言板
id编号 昵称 留言信息 留言时间 删除操作
{{ i.id }} {{ i.name }} {{ i.info }} {{ i.date }} {i.id}}">删除留言
点击发布留言
  • 跳转到留言页面

# 跳转添加留言页面
@app.route('/liuyan')
def liuyan():
    return render_template('liuyan.html')
  • ​​​​liuyan.html
  • ,这里注意地址指向为后面的insert视图,且为post提交方式




    
    留言板
    



    
留言板
昵称:
留言信息:
  • 接收表单数据,并入数据库

代码:

# 接收表单数据,并入数据库
@app.route('/insert', methods=['POST'])
def insert():
    connect = pymssql.connect(server='LAPTOP-DUHL1TTUYXHLHM',  # 服务器名或本地IP
                              user='sa',  # 账户
                              password='123456',  # 自己设置的密码
                              database='yxh2',
                              as_dict=True)  # 数据库内容以字典格式输出
    if connect:
        print("恭喜你,连接成功 !!!")
    cur = connect.cursor()  # 创建游标对象
    # connect.commit()  # 提交数据
    # cur.execute(sql2)  # 执行sql语句

    # data = cur.fetchall()  # 查看sql语句执行的结果
    # 接收表单数据
    data = request.form.to_dict()
    # 添加时间
    data['date'] = time.strftime('%Y-%m-%d %H:%I:%S')

    # print(data['date'])
    # 数据入库 'insert into liuyan(name,info) values(%s,%s)'
    name = data["name"]
    info = data["info"]
    sql = 'insert into liuyan(name,info) values(%s,%s)'
    cur.execute(sql, (name, info))
    connect.commit()

    connect.close()
    # return data

    # 数据入库  insert into liuyan(name,info) values('华仔','学习')
    # sql2 = f'insert into liuyan(name,info) values(null,"{data["name"]}","{data["info"]}")'
    # resp = sql(sql2)
    #
    if sql:
        return ''
    else:
        return ''

在这里:接收表单的数据且格式转为字典

    # 接收表单数据
    data = request.form.to_dict()

还有:这里用的%s来占位的,execute传递类型为元组或字典!!!

    # 数据入库 'insert into liuyan(name,info) values(%s,%s)'
    name = data["name"]
    info = data["info"]
    sql = 'insert into liuyan(name,info) values(%s,%s)'
    cur.execute(sql, (name, info))
    connect.commit()

操作后的js弹窗提示:留言成功会回到首页,失败则继续回留言页面

    if sql:
        return ''
    else:
        return ''
  • 留言数据的删除

# 接收ID,数据删除
@app.route('/delete')
def delete():
    connect = pymssql.connect(server='LAPTOP-DUHL1TTUYXHLHM',  # 服务器名或本地IP
                              user='sa',  # 账户
                              password='123456',  # 自己设置的密码
                              database='yxh2',
                              as_dict=True)  # 数据库内容以字典格式输出
    if connect:
        print("恭喜你,连接成功 !!!")
    cur = connect.cursor()  # 创建游标对象
    id = request.args.get('id')
    # sql = 'insert into liuyan(name,info) values(%s,%s)'
    sql = 'delete from liuyan where id=%s'
    cur.execute(sql, (id))
    connect.commit()

    if sql:
        return ''
    else:
        return ''

效果展示:
  • 留言表单页

  • 留言页面

  • 留言成功

 查看留言:

 数据库中:

 删除和修改数据也是一样的..........

写在最后:

虽然有很多冗余代码,但能出效果,我已经很满足啦~~~芜湖~


拜~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号