@(Python)[CH4]
Neil 完成 ch4 任务啦
任务成果地址 : City_weather+Database
-
任务成果截图1:
-
任务成功截图2:
-
任务成功截图3:
-
任务成功截图4:
-
任务成功截图5:
-
任务成功截图6:
程序使用说明地址: 暂无
个人教程地址: TBA
感想:
花了整整一周坚持练习Bootstrap, 总觉得这个如此美丽的东西将来肯定用得着,所以从开始迷茫,到一点点查资料跟着菜鸟教程一步步练习,直到最后才有了现在如此“美丽”的页面:),当然,距离真正的美丽还差很远,因为还有更精彩的风景在后面,所以放一放手,拥抱一下数据库。
说实话,数据库的卡包内容和链接都看了,很多不止一遍,但真正坐下来对着电脑还是会出现无从下手的囧境。个人有深思过这个问题,ok,如果你真的天资及其聪颖,或者你能极大程度的和时间闹着玩,那你可以尽情的在时间长河中去个人探索自由驰骋,而大多数人,尤其是初次,用如此快节奏的方式学习一门新技能,可能你真的需要在时间和个人探索之间找到一个平衡,而这个平衡点每个人其实都不一样。要省时间,当然最好的就是直接看同学的代码,比如第一时间看Hugo的视频,如果你需要要虐心感也叫自由探索自由驰骋,然后亲自爬过所有大坑,这种收获和体验可想而知应该就是永生难忘并及其具有价值,但是,付出的时间也要远远大于前者,我个人完全不鼓励直接看同学代码,也不鼓励一开始就看视频,但同时,内心觉得硬抗其实也是及其鲁莽的举措,尤其在你完全没摸到门道,甚至连问问题,提issue都不知从何问起时和提起时。
所以在个人探索与翻阅同学代码/观看视频之间要有个平衡,要能锻炼到自己,但又不要让自己陷入信心和时间上的无底线打击,这个可能也是这4周以来在学习上的一些额外体会。
当然,最开心的是,看了同学的代码,懂了,然后码出比ta更简洁的代码。最羡慕的是,北上广深的meetup!
总结
Bootstrap
CH4核心程序
- 在编辑核心程序时,思考了很多,也尝试了好多,最后采用try-except 主结构实现了所有功能, 感觉比Hugo采用 if 主结构更加简洁,代码如下,具体见成功任务
def process_request():
city = request.args.get('city')
try:
request.args.get('query') == "查询"
weather_str = retrieve_data(city) #this weather_str also came from the database.py
return render_template("query.html", weather_str=weather_str)
except:
if request.args.get('history') == "历史":
history_list = get_history()
return render_template("history.html", history_list=history_list)
elif request.args.get('help') == "帮助":
return render_template('help.html')
elif request.args.get('update') == "更新":
try:
location, weather = city.split(" ") #!!! say the web
update(location, weather)
return render_template('update.html')
except ValueError:
return render_template("error.html")
else:
try:
updated_time, location, weather, temperature = fetchWeather(city)
insert_data(updated_time, location, weather, temperature)
weather_str = '{}, {}的天气为{}, 气温{}°'.format(updated_time, location, weather, temperature) # must be here, or there will be error
#history_list.append(weather_str) // this from the API
return render_template("query.html", weather_str=weather_str)
except KeyError:
return render_template("error.html",city=city)