目录
数据库留言表的创建
留言板表单的实现
跳转到留言页面
接收表单数据,并入数据库
留言数据的删除
效果展示:
留言表单页
留言页面
留言成功
学习内容:简单实现: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文件
表单
留言板
id编号
昵称
留言信息
留言时间
删除 *** 作
{% for i in data %}
{{ i.id }}
{{ i.name }}
{{ i.info }}
{{ i.date }}
{i.id}}">删除留言
{% endfor %}
点击发布留言
- 跳转到留言页面
# 跳转添加留言页面
@app.route('/liuyan')
def liuyan():
return render_template('liuyan.html')
-
liuyan.html
留言板
留言板
- 接收表单数据,并入数据库
代码:
# 接收表单数据,并入数据库
@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 ''
效果展示:
- 留言表单页
- 留言页面
- 留言成功
查看留言:
数据库中:
删除和修改数据也是一样的..........
写在最后:
虽然有很多冗余代码,但能出效果,我已经很满足啦~~~芜湖~
拜~~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)