当前位置:   article > 正文

留言板(python+flask+sql server)保存在数据库_在数据库中建立留言信息表,字段为编号、留言者、留言内容、时间。输入至少三条记

在数据库中建立留言信息表,字段为编号、留言者、留言内容、时间。输入至少三条记

目录

数据库留言表的创建

留言板表单的实现

跳转到留言页面

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

留言数据的删除

效果展示:

留言表单页

留言页面

留言成功


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


  • 数据库留言表的创建

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

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

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

效果:

  1. import pymssql
  2. from flask import Flask, render_template, request
  3. app = Flask(__name__)
  4. @app.route('/')
  5. def index():
  6. sql2 = 'select * from liuyan'
  7. data = sql(sql2)
  8. print(data)
  9. return render_template('table.html', data=data)
  10. def sql(sql2):
  11. connect = pymssql.connect(server='LAPTOP-DUHL1TTU\YXHLHM', # 服务器名或本地IP
  12. user='sa', # 账户
  13. password='*****', # 自己设置的密码
  14. database='yxh2',
  15. as_dict=True) # 数据库内容以字典格式输出
  16. if connect:
  17. print("恭喜你,连接成功 !!!")
  18. cur = connect.cursor() # 创建游标对象
  19. connect.commit() # 提交数据
  20. cur.execute(sql2) # 执行sql语句
  21. data = cur.fetchall() # 查看sql语句执行的结果
  22. connect.close() # 关闭连接
  23. return data
  24. if __name__ == "__main__":
  25. app.run(debug=True)
  • table.html文件
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>表单</title>
  8. <style type="text/css">
  9. table {
  10. width: 600px;
  11. height: 100px;
  12. text-align: center;
  13. }
  14. caption {
  15. padding-bottom: 20px;
  16. font-size: 46px;
  17. color: white;
  18. text-shadow: 1px 1px 2px black,
  19. 0 0 25px blue,
  20. 0 0 5px darkblue;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <center>
  26. <table border="1">
  27. <caption>留言板</caption>
  28. <tr>
  29. <th>id编号</th>
  30. <th>昵称</th>
  31. <th>留言信息</th>
  32. <th>留言时间</th>
  33. <th>删除操作</th>
  34. </tr>
  35. {% for i in data %}
  36. <tr>
  37. <td>{{ i.id }}</td>
  38. <td>{{ i.name }}</td>
  39. <td>{{ i.info }}</td>
  40. <td>{{ i.date }}</td>
  41. <td><a href="/delete?id={{i.id}}">删除留言</a></td>
  42. </tr>
  43. {% endfor %}
  44. </table>
  45. </center>
  46. <center>
  47. <h3>
  48. <a href="/liuyan">点击发布留言</a>
  49. </h3>
  50. </center>
  51. </body>
  52. </html>
  • 跳转到留言页面

  1. # 跳转添加留言页面
  2. @app.route('/liuyan')
  3. def liuyan():
  4. return render_template('liuyan.html')
  • ​​​​liuyan.html
  • <form action="/insert" method="post">,这里注意地址指向为后面的insert视图,且为post提交方式
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>留言板</title>
  6. <style type="text/css">
  7. table {
  8. width: 350px;
  9. height: 350px;
  10. background: linear-gradient(200deg, #a1ffce, #faffd1);
  11. }
  12. caption {
  13. padding-bottom: 20px;
  14. font-size: 46px;
  15. color: white;
  16. text-shadow: 1px 1px 2px black,
  17. 0 0 25px rgb(31, 171, 68),
  18. 0 0 5px rgb(118, 167, 11);
  19. }
  20. .colour {
  21. background-color: #a1ffce;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <center>
  27. <table>
  28. <caption>留言板</caption>
  29. <form action="/insert" method="post">
  30. <tr>
  31. <td>昵称:</td>
  32. <td><input type="text" name="name"></td>
  33. </tr>
  34. <tr>
  35. <td>留言信息:</td>
  36. <td>
  37. <textarea name="info" id="" cols="30" rows="10">请输入您的留言...</textarea>
  38. </td>
  39. </tr>
  40. <tr>
  41. <th class="bottn">
  42. <input type="submit" class="colour" value="点击留言">
  43. </th>
  44. </tr>
  45. </form>
  46. </table>
  47. </center>
  48. </body>
  49. </html>
  • 接收表单数据,并入数据库

代码:

  1. # 接收表单数据,并入数据库
  2. @app.route('/insert', methods=['POST'])
  3. def insert():
  4. connect = pymssql.connect(server='LAPTOP-DUHL1TTU\YXHLHM', # 服务器名或本地IP
  5. user='sa', # 账户
  6. password='123456', # 自己设置的密码
  7. database='yxh2',
  8. as_dict=True) # 数据库内容以字典格式输出
  9. if connect:
  10. print("恭喜你,连接成功 !!!")
  11. cur = connect.cursor() # 创建游标对象
  12. # connect.commit() # 提交数据
  13. # cur.execute(sql2) # 执行sql语句
  14. # data = cur.fetchall() # 查看sql语句执行的结果
  15. # 接收表单数据
  16. data = request.form.to_dict()
  17. # 添加时间
  18. data['date'] = time.strftime('%Y-%m-%d %H:%I:%S')
  19. # print(data['date'])
  20. # 数据入库 'insert into liuyan(name,info) values(%s,%s)'
  21. name = data["name"]
  22. info = data["info"]
  23. sql = 'insert into liuyan(name,info) values(%s,%s)'
  24. cur.execute(sql, (name, info))
  25. connect.commit()
  26. connect.close()
  27. # return data
  28. # 数据入库 insert into liuyan(name,info) values('华仔','学习')
  29. # sql2 = f'insert into liuyan(name,info) values(null,"{data["name"]}","{data["info"]}")'
  30. # resp = sql(sql2)
  31. #
  32. if sql:
  33. return '<script>alert("留言成功");location.href="/"</script>'
  34. else:
  35. return '<script>alert("留言失败啦~~");location.href="/liuyan"</script>'

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

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

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

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

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

  1. if sql:
  2. return '<script>alert("留言成功");location.href="/"</script>'
  3. else:
  4. return '<script>alert("留言失败啦~~");location.href="/liuyan"</script>'
  • 留言数据的删除

  1. # 接收ID,数据删除
  2. @app.route('/delete')
  3. def delete():
  4. connect = pymssql.connect(server='LAPTOP-DUHL1TTU\YXHLHM', # 服务器名或本地IP
  5. user='sa', # 账户
  6. password='123456', # 自己设置的密码
  7. database='yxh2',
  8. as_dict=True) # 数据库内容以字典格式输出
  9. if connect:
  10. print("恭喜你,连接成功 !!!")
  11. cur = connect.cursor() # 创建游标对象
  12. id = request.args.get('id')
  13. # sql = 'insert into liuyan(name,info) values(%s,%s)'
  14. sql = 'delete from liuyan where id=%s'
  15. cur.execute(sql, (id))
  16. connect.commit()
  17. if sql:
  18. return '<script>alert("留言删除成功");location.href="/"</script>'
  19. else:
  20. return '<script>alert("留言删除失败啦~~");location.href="/liuyan"</script>'

效果展示:

  • 留言表单页

  • 留言页面

  • 留言成功

 查看留言:

 数据库中:

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

写在最后:

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


拜~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/686402
推荐阅读
相关标签
  

闽ICP备14008679号