10.24回顾总结

这几天和上上篇文章写的一样,感觉没做什么。可是,又好像做了些事情。在我混沌的记忆中,我这几天一直都是在刷美剧,看电影。中间我还写了个程序,把中文字幕去掉,留下英文,让我看得更爽。后来看了点书,发现了个PEP8的编程规范,如获至宝。可是,看了看自己写的那些代码。。。一下子也提不起兴致来改。只能说以后写的代码,尽量按照pep8的规范来写了。BTW我发现了pycharm上内嵌有pep8,这样子方便多了。我就不用每次写完代码还得打开命令行来检查了,毕竟编程是为了让生活更方便的不是吗。

说会Flask吧。我一直都有一个想法:把爬虫爬回来的信息在网站中展示出来。一个多月前我学会了爬虫和写数据库。然后我以为要用到API就跑去把API学了,事实是压根没API什么事。反正懒癌发作,一直拖到了现在。我这几天,每天想一点,每天写一点,每天做一点。因为我知道我只要一开始做就会遇到好多坑,我被坑怕了,开始逃避和拖延。不过在这里写东西,就是为了把坑记录下来,以免以后再犯。

我的爬虫用的mysql的数据库,然后我想把flask也换成mysql。可是,工程太大,太复杂,自己也是初学不知道如何操作。后来想起flask用的是sqlalchemy框架,就动了要不就使用sqlalchemy来连接mysql的念头。最终决定是把爬虫的数据库换成我的Flask使用的sqlite数据库。。。。。本来很简单的事情我傻逼的绕了一个圈。

想法总是简单的,但实现起来总是各种麻烦的。
23号,我想直接在原来的diary日记蓝图中插入个页面。可是路由不一样,插入失败。我想了一天都想不明白,还以为蓝图只给我两个路由而已。

from flask import request,render_template, redirect,url_for
from . import diary
from .. import db
from ..models import Diary
from .forms import DiaryForm
from config import config

@diary.route('/diary', methods=['GET', 'POST'])
def blog():
    form = DiaryForm()
    if form.validate_on_submit():

        diary = Diary(title=form.title.data,body=form.body.data,src=form.src.data)
        db.session.add(diary)
        return redirect('diary')
    page = request.args.get('page',1, type=int)
    pagination = Diary.query.order_by(Diary.timestamp.desc()).paginate(
        page,per_page=20,
        error_out=False)
    diarys = pagination.items
    return render_template('diary.html', form = form,diarys=diarys,pagination=pagination)

@diary.route('/diary/', methods=['GET', 'POST'])
def diary(id):
    diary = Diary.query.get_or_404(id)
    return render_template('diarys.html', diarys=[diary])

我当时就是想再加一个 def douban():上去,然后装饰器那里改成@diary.route('/douban/',methods=['GET','POST'])
现在想想,人只要不动脑子,跟猪没什么分别。
我为了证明自己的想法可以实现,作死的把diary蓝图里的数据信息和models的diary改了,就为了看能不能读取数据库里爬虫爬回来的信息。
好的,成功了!可是,我特么的又得把手动代码改回去。自己没做好版本控制,自己作死。

不过为了整洁美观,我还是写了个新的蓝图。我的爬虫是爬取豆瓣悬疑电影排行榜信息。
写完代码以后开始测试。我其实很害怕开始测试的那一瞬间的,因为不知道有什么错误在等着我。所以每次写完代码,我都有种后背发凉的感觉。
运行服务器吧,好的,无法读取数据库。为什么呢?为什么是空白的?
我花了几个小时,才意识到错误在哪里。

conn = sqlite3.connect('data-dev.sqlite')

#sql = """CREATE TABLE douban( id int primary key not null auto_increment,title text,actor text ,rating char(20))"""
#conn.execute('DROP TABLE IF EXISTS douban')
#conn.execute(''' CREATE TABLE douban
                #(id INT PRIMARY KEY ,
                #title TEXT, actor TEXT,body TEXT,rating STRING(50),pic TEXT,url TEXT)''')
#连接数据库,查看有没有douban这个表,如果有,删掉然后新建一个

我的爬虫了存在这一段代码,它启动的时候会检查有没有douban这个表,有它就会给我自动删除了重新再建一个。也就是说我Flask服务器里的douban每次都被它删了,然后就找不到了。即使它后来自己建了一个新的也不是我原来Flask建的那个,自然就读不出来了。所以我把这段代码注释掉,运行,一切正常。

火狐截图_2016-10-24T09-30-38.297Z.png

接下来要做的就是使用新学的前端知识做下美化,写个简历网页,然后部署上线!最后,找工作!!!

你可能感兴趣的:(10.24回顾总结)