当我运行代码时,仅提取并应用数据库中的某些查询,因此应用的某些代码不正确。我无法判断是我的 HTML 代码不正确还是我的查询不正确,或者数据库中是否存在整体错误。
我检查了我的数据库,看看数据库中任何项目的id是否有错误,但它们都是正确的,我检查了我的代码但没有用。
@app.route('/activity/<activityid>')
def activity(activityid):
dbObject = Database(DB_FILE)
visit = {
"VisitType" : "Activity",
"LinkId" : activityid ,
"VisitTime" : datetime.datetime.now(),
"UserId" : session['user']['user_info'][0] if 'user' in session and session['user']['logged_in'] else "", # ternary operation
"IpAddress" : socket.gethostbyname(socket.gethostname())
}
dbObject.addVisit(visit)
conn = dbObject.connection
data = {}
data['config'] = config
activityObject = Activity(conn)
hotelObject = Hotel(conn)
transportObject = Transport(conn)
if activityid:
data['activity'] = activityObject.getActivity(activityid)
data['suggestions'] = activityObject.getActivitySuggestions(activityid)
data['hotel'] = hotelObject.getHotelSuggestions(activityid)
data['transport'] = transportObject.getTransportSuggestions(activityid)
return render_template ("activity.html", data=data)
def getActivitySuggestions(self, activityid): cursor = self.conn.cursor() query = f"""SELECT Activity.*, Location.Name as LocationName FROM Activity JOIN Location ON Activity.LocationId = Location.LocationId where Activity.LocationId = (select LocationId from Activity where ActivityId = {activityid}) and Activity.ActivityId != {activityid} ORDER by random()""" #print(query) try: cursor.execute(query) records = cursor.fetchall() if records: return records else: return False except: return "Something Went Wrong!"
{% if data["activities"] %} <div class="row"> <div class="col-md-12"> <h1>Suggested Activities</h1> </div> </div> <div class="row"> {% for eachActivity in data["activities"] %} <!--for loop created for all of the activity that are created--> <div class="col-md-6"> <div class="card mb-3"> <!-- gridding the cards sizing --> <div class="row g-0"> <div class="col-md-4"> <img src="/static/activities/{{ eachActivity[0] }}_0.jpg" class="img-fluid rounded-start" alt="..."> <!--images upload from actvity files in static--> </div> <div class="col-md-8"> <div class="card-body"> <h5 class="card-title"><a href="/activity/{{ eachActivity[0] }}">{{ eachActivity[1] }}</a> </h5> <!-- import the address name and price from the database--> <p class="card-text">{{ eachActivity[5] }}</p> <p class="card-text"><strong class="text-body-secondary">{{ eachActivity[3] }}</strong></p> <p class="card-text"><small class="text-body-secondary">{{ eachActivity[6] }}</small></p> </div> </div> </div> </div> </div> {% endfor %} </div> {% endif %}
在
getActivitySuggestions
中,您需要对 activityid
进行一些更改。在类中,如果你有参数,你应该定义 self.{parameter_name} = {parameter}
:你可以用它来测试它吗?
def getActivitySuggestions(self, activityid):
self.activityid = activityid
cursor = self.conn.cursor()
query = f"""SELECT Activity.*, Location.Name as LocationName
FROM Activity JOIN Location
ON Activity.LocationId = Location.LocationId
where Activity.LocationId = (select LocationId from Activity where ActivityId = {self.activityid})
and Activity.ActivityId != {self.activityid} ORDER by random()"""
#print(query)
try:
cursor.execute(query)
records = cursor.fetchall()
if records:
return records
else:
return False
except:
return "Something Went Wrong!"