留言板

留言板,第1张

目录

数据库留言表的创建

留言板表单的实现

跳转到留言页面

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

留言数据的删除

效果展示:

留言表单页

留言页面

留言成功


学习内容:简单实现: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-DUHL1TTU\YXHLHM',  # 服务器名或本地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-DUHL1TTU\YXHLHM',  # 服务器名或本地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()

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

    if sql:
        return ''
    else:
        return ''
  • 留言数据的删除
# 接收ID,数据删除
@app.route('/delete')
def delete():
    connect = pymssql.connect(server='LAPTOP-DUHL1TTU\YXHLHM',  # 服务器名或本地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 ''
效果展示:
  • 留言表单页

  • 留言页面

  • 留言成功

 查看留言:

 数据库中:

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

写在最后:

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


拜~~~

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/794550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存