建设婚恋网站用什么搭建,东莞网站设计与网站制作,成都新津网站建设,网站自适应尺寸目录 查看电影类型的电影列表
添加电影
修改电影
上机练习 13 使用三层架构完善 web 系统 查看电影类型的电影列表 DAL.py 文件 class MovieDAL(DBHelper): def getMovieByTid(self,typeid): sqlfselect id,title,release_date,score,tname from Mo…目录 查看电影类型的电影列表
添加电影
修改电影
上机练习 13 使用三层架构完善 web 系统 查看电影类型的电影列表 DAL.py 文件 class MovieDAL(DBHelper): def getMovieByTid(self,typeid): sqlfselect id,title,release_date,score,tname from MovieType inner join Movie on MovieType.tid Movie.typeid where typeid{typeid} return self.cha(sql) app.py 文件 from DAL import MovieTypeDAL,MovieDAL mtdalMovieTypeDAL() mdalMovieDAL() app.route(/movieList/typeid) def movieList(typeid): resultmdal.select(typeid) return render_template(movieList.html,inforesult) 添加电影 #app.py app.route(/addMovie) def addMovie(): resultmtdb.select() return render_template(addMovie.html,inforesult) #addMovie.html select nametypeid {% for i in info %} option value{{i[0]}}{{i[1]}}/option {% endfor %} /select 修改电影 修改电影下拉框参考代码 app.py app.route(/updateMovie/id) def updateMovie(id): resultmdb.getMovieByID(id) resultTypemtdb.select() return render_template(updateMovie.html,inforesult,info1resultTyp e,tidint(result[4])) 修改电影下拉框参考代码 updateMovie.html p 电影类型 select nametypeid {% for i in info1 %} {% if i[0]tid %} option value{{i[0]}} selectedselected{{i[1]}}/option {% else %} option value{{i[0]}}{{i[1]}}/option {% endif %} {% endfor %} /select /p 上机练习 13 使用三层架构完善 web 系统 查看不同电影类型的电影列表 实现电影的添加 实现电影的修改删除功能注意刷新页面的处理 电影类型列表页添加模糊搜索电影功能搜索后跳转到电影列表页 新增 searchMovie.html App.py:( 业务逻辑 ) from flask import Flask,render_template,request
from DAL import MovieTypeDAL,DouBanMovieDAL
from Model import MovieType,DoubanMovieType
appFlask(__name__)
mtdalMovieTypeDAL()
mdalDouBanMovieDAL()
tid_old0
# 主页列表全部
app.route(/)
def list():resultmdal.select()
# print(result)
return render_template(DouBanMovies.html,inforesult)
# 根据电影种类筛选电影
app.route(/DouBanMoviesSelect, methods[POST])
def DouBanMoviesSelect():
keywordrequest.form.get(MovieType)
if keyword全部:
resultmdal.select()
else:
resultmdal.getMovieByType(keyword)
return render_template(DouBanMovies.html,inforesult)
# 根据电影名关键字搜索电影
app.route(/DouBanMoviesSearch, methods[POST])
def DouBanMoviesSearch():
keywordrequest.form.get(titlekeywords)
resultmdal.getMovieBytitle(keyword)
return render_template(DouBanMovies.html,inforesult)
# 进入添加电影页面
app.route(/addDouBanMovie)
def add():
return render_template(addDouBanMovie.html)
# 添加提交
app.route(/DouBanMovieaddSubmit, methods[POST])
def addSubmit():
idrequest.form.get(id)
titlerequest.form.get(title)
release_daterequest.form.get(release_date)
scorerequest.form.get(score)
typesrequest.form.get(types)
mtDoubanMovieType(id,title,release_date,score,types)
resultmdal.insert(mt)
if result0:
return 添加成功 a href/刷新/a
else:
return 添加失败 a href/刷新/a
# 删除
app.route(/deleteDouBanMovie/id)
def delete(id):
resultmdal.delete(id)
if result0:
return 删除成功 a href/刷新/a
else:return 删除失败 a href/刷新/a
# 修改
app.route(/updateDouBanMovie/id)
def update(id):
resultmdal.selectByid(id)
return
render_template(updateDouBanMovies.html,inforesult)
# 修改提交
app.route(/updateDouBanMovieSubmit, methods[POST])
def updateSubmit():
# 修改数据
old_idrequest.form.get(old_id)
idrequest.form.get(id)
titlerequest.form.get(title)
release_daterequest.form.get(release_date)
scorerequest.form.get(score)
typesrequest.form.get(types)
resultmdal.update(old_id,id,id)
result1mdal.update(old_id,title,title)
result2mdal.update(old_id,release_date,release_date)
result3mdal.update(old_id,score,score)
result4mdal.update(old_id,types,types)
if result or result4 or result1 or result2 or result3:
return 修改成功 a href/刷新/a
else:
return 修改失败 a href/刷新/a
if __name____main__:
app.run(host127.0.0.1,port5000,debugTrue)DAL.py:数据访问 import datetime
import pymysql
class DBHelper:
# 方法
# 数据库链接
def openDB(self):
global conn
connpymysql.connect(host127.0.0.1,userroot,
passwordroot123456,databasetest,charsetutf8)
global baoma
baomaconn.cursor()# 关闭数据库
def closeDB(self):
baoma.close()
conn.close()
# 数据增删改
def edit(self,sql):
self.openDB()
resultbaoma.execute(sql)
conn.commit()
self.closeDB()
return result
# 查询多条
def chaAll(self,sql):
self.openDB()
baoma.execute(sql)
resultbaoma.fetchall()
self.closeDB()
return result
# 查询一条
def chaOne(self,sql):
self.openDB()
baoma.execute(sql)
resultbaoma.fetchone()
self.closeDB()
return result
class MovieTypeDAL(DBHelper):
# 插入数据
def insert(self,mt):
sqlfinsert into MovieType(tname,tcontent,tdate)
values({mt.tname},{mt.tcontent},now())
return self.edit(sql)
# 查询数据
def select(self):
sqlselect * from MovieType
return self.chaAll(sql)
# 根据 id 号修改数据
def update(self,tid,UpdateColumn,EndValue):
if type(EndValue)str:
sqlfupdate MovieType set
{UpdateColumn}{EndValue} where tid{tid}
elif type(EndValue)int :sqlfupdate MovieType set {UpdateColumn}{EndValue}
where tid{tid}
elif type(EndValue)datetime.datetime:
sqlfupdate MovieType set
{UpdateColumn}{EndValue} where tid{tid}
return self.edit(sql)
# 通过 id 号查询数据
def selectByTid(self,tid):
sqlfselect * from MovieType where tid{tid}
return self.chaOne(sql)
# 通过 id 号删除数据
def delete(self,tid):
sqlfdelete from MovieType where tid{tid}
return self.edit(sql)
class DouBanMovieDAL(DBHelper):
# 插入数据
def insert(self,dm):
sqlfinsert into
DoubanMovieType(id,title,release_date,score,types)
values({dm.id},{dm.title},{dm.release_date},{dm.score},
{dm.types})
return self.edit(sql)
# 查询数据
def select(self):
sqlselect * from DoubanMovieType
return self.chaAll(sql)
# 根据 id 号修改数据
def update(self,id,UpdateColumn,EndValue):
if type(EndValue)str:
sqlfupdate DoubanMovieType set
{UpdateColumn}{EndValue} where id{id}
else :
sqlfupdate DoubanMovieType set
{UpdateColumn}{EndValue} where id{id}
return self.edit(sql)
# 通过 id 号查询数据
def selectByid(self,id):
sqlfselect * from DoubanMovieType where id{id}
return self.chaOne(sql)
# 通过 id 号删除数据
def delete(self,id):
sqlfdelete from DoubanMovieType where id{id}return self.edit(sql)
# 根据类型查询电影
def getMovieByType(self,type):
sqlfselect id,title,release_date,score,types
from DoubanMovieType
where types like %{type}%
return self.chaAll(sql)
# 根据电影名称查询电影
def getMovieBytitle(self,titlekeywords):
sqlfselect id,title,release_date,score,types
from DoubanMovieType
where title like %{titlekeywords}%
return self.chaAll(sql) model 模型层 import datetime
class MovieType:
tname
tcontent
tdatedatetime.datetime.now()
def __init__(self,tname1,tcontent1):
self.tnametname1
self.tcontenttcontent1
class DoubanMovieType:
id
title
release_date
score
types
def __init__(self,id1,title1,release_date1,score1,types1):
self.idid1
self.titletitle1
self.release_daterelease_date1
self.scorescore1
self.typestypes1 addDouBanMovie.html:( 添加电影界面 ) html
head
title添加电影/title
/head
bodyh1欢迎使用豆瓣网/h1
a href/首页/a
a href电影类型列表/a
a href添加电影类型/a
a href/addDouBanMovie添加电影/a
a href查看柱状图/a
a href查看饼状图/a
p/p
form methodpost action/DouBanMovieaddSubmit
p电影编号input typetext nameid //p
p电影名称input typetext nametitle //p
p上映时间input typedate namerelease_date
//p
p评分:input typenumber namescore //p
p电影种类:input typetext nametypes //p
!-- 添加按键 --
input typesubmit value添加
/form
/body
style
body{ margin: 0 auto; width: 800px;
background-image:url(/static/html 封面图.png);
background-repeat:no-repeat;
background-size: cover;
}
h1{ color: #258dcd}
a{
background-color: #258dcd;
color: white;
padding: 5px 8px;
text-decoration: none;
border-radius: 5px;
/*半透明*/
/*background-color:rgba(55,55,55,0.5)*/
}
/style
/html DouBanMovies.html:( 主页总表页 ) html
head
title豆瓣网首页/titlemeta charsetutf-8/
/head
body
h1欢迎使用豆瓣网/h1
a href/首页/a
a href电影类型列表/a
a href添加电影类型/a
a href/addDouBanMovie添加电影/a
a href查看柱状图/a
a href查看饼状图/a
h1输入你喜欢的电影进行搜索吧/h1
form methodpost action/DouBanMoviesSelect
选择电影种类:
input typetext nameMovieType placeholder请
输入电影种类
input typesubmit value提交
/form
p/p
form methodpost action/DouBanMoviesSearch
输入电影名称关键字
input typetext nametitlekeywords placeholder
请输入电影名称
input typesubmit value提交
/form
p/p
table
trtd电影编号/tdtd电影名称/tdtd上映时间
/tdtd评分/tdtd电影种类/td/tr
{% for i in info %}
trtd{{ i[0] }}/tdtd{{ i[1] }}/tdtd{{ i[2]
}}/tdtd{{ i[3] }}/tdtd{{ i[4] }}/td
tda href/updateDouBanMovie/{{ i[0] }}修改/a
a href/deleteDouBanMovie/{{ i[0] }}删除/a/td/tr
{% endfor %}
/table
/body
style
body{ margin: 0 auto; width: 800px;
background-image:url(/static/html 封面图.png);
background-repeat:no-repeat;
background-size: cover;
background-position: center;
}h1{ color: #258dcd}
a{
background-color: #258dcd;
color: white;
padding: 1px 12px;
text-decoration: 12px;
border-radius: 12px;
/*半透明*/
/*background-color:rgba(55,55,55,0.5)*/
}
table,tr,td{ border: 2px solid black; border-collapse:
collapse;}
table{ width: 100% ;}
td{ text-align: center; padding: 20px;}
.tou{
background-color: #258dcd;
color: white;
font-size: 18px;
font-weight: bold;
}
/style
/html DouBanMoviesSelect.html:( 模糊筛选页 ) html
head
title筛选结果/title
meta charsetutf-8/
/head
body
h1欢迎使用豆瓣网/h1
a href/首页/a
a href电影类型列表/a
a href添加电影类型/a
a href/addDouBanMovie添加电影/a
a href查看柱状图/a
a href查看饼状图/a
form methodpost action/DouBanMoviesSelect
select nameMovieType
option typetext value全部全部/option
option typetext value喜剧喜剧/option
option typetext value动作动作/option
option typetext value动画动画/option/select
input typesubmit value提交
/form
form methodpost action/DouBanMoviesSearch
input typetext nametitlekeywords placeholder
请输入电影名称
input typesubmit value提交
/form
p/p
table
trtd电影编号/tdtd电影名称/tdtd上映时间
/tdtd评分/tdtd电影种类/td/tr
{% for i in info %}
trtd{{ i[0] }}/tdtd{{ i[1] }}/tdtd{{ i[2]
}}/tdtd{{ i[3] }}/tdtd{{ i[4] }}/td
tda href/updateDouBanMovie/{{ i[0] }}修改/a
a href/deleteDouBanMovie/{{ i[0] }}删除/a/td/tr
{% endfor %}
/table
/body
style
body{ margin: 0 auto; width: 800px;
background-image:url(/static/html 封面图.png);
background-repeat:no-repeat;
background-size: cover;
background-position: center;
}
h1{ color: #258dcd}
a{
background-color: #258dcd;
color: white;
padding: 1px 12px;
text-decoration: 12px;
border-radius: 12px;
/*半透明*/
/*background-color:rgba(55,55,55,0.5)*/
}
table,tr,td{ border: 2px solid black; border-collapse:
collapse;}
table{ width: 100% ;}
td{ text-align: center; padding: 20px;}
.tou{
background-color: #258dcd;color: white;
font-size: 18px;
font-weight: bold;
}
/style
/html updateDouBanMovies.html:( 修改电影信息页 ) html
head
title修改电影信息/title
/head
body
h1欢迎使用豆瓣网/h1
a href/首页/a
a href电影类型列表/a
a href添加电影类型/a
a href/addDouBanMovie添加电影/a
a href查看柱状图/a
a href查看饼状图/a
p/p
form methodpost action/updateDouBanMovieSubmit
p电影编号input typetext nameid
value{{ info[0] }}input typehidden nameold_id
value{{ info[0] }} readonlyreadonly//p
p电影名称input typetext nametitle
value{{ info[1] }}//p
p上映时间input typedate namerelease_date
value{{ info[2] }}//p
p评分:input typenumber namescore
value{{ info[3] }}//p
p电影种类:input typetext nametypes
value{{ info[4] }}//p
!-- 修改按键 --
pinput typesubmit value修改 //p
/form
/body
style
body{ margin: 0 auto; width: 800px;
background-image:url(/static/html 封面图.png);
background-repeat:no-repeat;
background-size: cover;}
h1{ color: #258dcd}
a{
background-color: #258dcd;
color: white;
padding: 5px 8px;
text-decoration: none;
border-radius: 5px;
/*半透明*/
/*background-color:rgba(55,55,55,0.5)*/
}
/style
/html 我的部分代码和老师教的有点出入所以主界面有点不一样不过我觉得还行。 各个功能都测试过了。从上午忙活到吃晚饭头都发昏了