Skip to content

leeexing/python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bfdhfdf

B B

"What I cannot create, I do not understand." -- Richard Feynman

python

created by leeing on 2017/12/19
主要目的:
    1、记录python的学习之路
    2、练习使用python
包含内容:
    1、利用flask框架编写一个blog
    2、记录一下自己的爬虫demo以及经验
    3、自己的一些读书心得
结构:
    1、blog
    2、crawler
    3、books

blog

learn flask frame

flask

1、session 操作 app.config[SECRET_KEY] = os.urandom(24)

session[key] = value -- 添加设置
session.get(key) -- 获取
seesion.pop(key) -- 删除某个键值
session.clear() -- 清除
机制:
  * 把敏感数据经过加密后放入`session`中,然后再把`session`存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取session,然后再从session中读取敏感信息,并进行解密,获取最终的用户数据

2、如果没有指定时间,那么浏览器关闭那么session就自动结束 session.permanent = True -- 设置过期时间为31天 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) -- 设置过期时间为7天

3、get 传参 url_for(url, q='leeing') -- url?q=leeing 后台通过 request.args.get('key') -- 获取get请求参数

4、post请求 request.form.get('key') -- 获取表单数据 request.values.get('key') -- 获取所有参数

5、g属性 保存全局变量 g.username = xxx | g.ip = yyy g对象是专门用来保存用户的数据的 g对象在一次请求中的所有代码的地方,都是可以使用的 | 当你第二次请求的时候g就不是同一个了 | 范围是当前请求内 * 所以实用性还不如 session,因为g变量保存的周期不常

6、hook 钩子函数 before_request | 在请求之前执行 | 是在视图函数执行之前执行的 | 只是一个装饰器 * 可以截取所有的访问 | 即在所有请求进入app.route装饰的函数前先被处理一次 after_request * 在用户请求得到函数响应后再执行一次 | 这个执行是在函数返回数据前被调用 | 形成了response,但未返回给用户 context_processor | 返回结果必须是 dict | 上下文处理器,包含上下文共用的变量 | 只是一个装饰器 * 目的是让所有自定义变量在模板中可见

7、优雅的重定向所有未登录用户到登录界面 使用@app.before_requesthook钩子进行登录验证 * 两个条件判断 | session.get('username') | request.endpoint not in ('login','register','static') | 否则会不断重定向 302 * request.endpoint | 每个视图函数都有一个endpoint | 就是 @app.route下面的 def 函数名视图函数 * 视图蓝本 blueprint app.register_blueprint(user, url_prefix='user') app.register_blueprint(file, url_prefix='file') 这种情况下如果视图函数重名 | 需要带上前面的 userfile 才行呢 安装flask-login | 但是每个需要认证的路由都还必须添加一个@login_required的装饰器

8、

crawler

some crawler demos

reading

read some python books and some of my thoughts