![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python_web
文章平均质量分 60
kobe_OKOK_
Python爱好者 曼巴精神践行者
展开
-
django: ‘staticfiles‘ is not a registered tag library. Must be one of:
解决方案:修改配置文件:原创 2022-10-24 15:53:54 · 557 阅读 · 0 评论 -
Python后端分页组件
分页组件原创 2022-09-14 11:41:01 · 207 阅读 · 0 评论 -
一文搞懂cookie、session、token、jwt、OAuth
一文彻底读懂cookie、session、token、JWT、OAuth原创 2022-09-10 19:42:11 · 3634 阅读 · 0 评论 -
代码复现CSRF攻击并解决它
From 百度百科:CSRF跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。我们创建两个站点:一个是正常的网站,没有防御CSRF攻击另一个是黑客的网站,专门对没有CSRF的网站原创 2022-06-08 11:23:45 · 698 阅读 · 1 评论 -
找到FLASK内部隐藏的所有钩子
文章目录0 钩子函数的作用1 flask 运行时处理请求流程2 app装饰器小结3 信号小结4 应用案例0 钩子函数的作用当下的开发基本上都是基于框架做的,很少有重复造轮子的,所有的框架,不管是什么语音,都会在某些关键节点预留一些钩子函数,框架使用者通过这些钩子函数定制一些符合特定业务的功能。抛开语言层面,任何web框架的大体逻辑大差不差,基本上都是封装Http请求,匹配路由,找到视图函数, 使用视图函数的返回值封装Http响应。在web框架中有几个关键节点,分别是每次接收请求前,匹配路由后,进入视图原创 2022-05-31 14:28:39 · 258 阅读 · 0 评论 -
flask-session源码分析
1 程序启动阶段from flask import Flask app = Flask(__name__)@app.route('/')def index(): return 'hello flask'if __name__ == '__main__': app.run()2 请求到来1.app.__call__ 2.app.wsgi_app 3.ctx.push()session 登场:ctx.py/ RequestContext类: def push(self原创 2022-04-12 15:59:12 · 206 阅读 · 0 评论 -
flask 1.1.2核心依赖版本
flask 1.1.2 requires Jinja2>=2.10.1, which is not installed.flask 1.1.2 requires Werkzeug>=0.15, but you have werkzeug 0.14.1 which is incompatible.原创 2022-04-11 15:07:09 · 1504 阅读 · 0 评论 -
Flask CBV 用法
from flask import Flask, views, requestapp = Flask(__name__)def decorator1(f): def inner(): print('before') res = f() print('after') return res return innerclass HelloView(views.View): methods = ['GET',原创 2022-04-06 14:16:38 · 606 阅读 · 0 评论 -
Flask源码剖析
Flask 源码解读1 环境Python 3.8.5依赖包:click==8.1.2colorama==0.4.4Flask==2.1.1importlib-metadata==4.11.3itsdangerous==2.1.2Jinja2==3.1.1MarkupSafe==2.1.1Werkzeug==2.1.0zipp==3.7.02 WSGIWSGI(Python Web Server Gateway Interface )Python 定义的web服务器与we原创 2022-04-04 10:11:13 · 1103 阅读 · 1 评论 -
flask通过一个装饰器解决跨域问题
from flask import Flask, make_responseimport jsonfrom functools import wrapsapp = Flask(__name__)def add_allow_origin(name): def mid(func): @wraps(func) def inner(*args, **kwargs): resp = func(*args, **kwargs)原创 2021-11-07 21:15:48 · 464 阅读 · 0 评论 -
Gunicorn部署flask
文章目录1 安装gunicorn2 gunicorn可选参数1 安装gunicorn最好在linux环境下安装和测试,我的机器是Ubantu 20.04pip install gunicorn2 gunicorn可选参数(laogao) zjf@ubuntu:~/Desktop/laogao$ gunicorn -husage: gunicorn [OPTIONS] [APP_MODULE]optional arguments: -h, --help show t原创 2021-11-06 13:26:40 · 498 阅读 · 0 评论 -
web框架实现原理-3(多任务)
文章目录0 预备知识0.1 多进程0.2 多线程0.3 协程1 基本web服务器2 多线程版本web服务器3 多进程版本web服务器4 gevent版本web服务器5 单进程单线程非阻塞服务器0 预备知识进程、线程、协程是怎么工作的?0.1 多进程import multiprocessingimport timedef task(): for i in range(5): print(i)def main(): p = multiprocessing.P原创 2021-09-15 13:17:33 · 157 阅读 · 0 评论 -
Flask源码剖析-session实现原理
文章目录1 cookie和session2 flask中使用session3 剖析flask内部session实现原理3.1 重点分析SecureCookieSessionInterface类3.2 请求进来后,开始准备响应4 小结1 cookie和sessionhttp是无状态的,对于一些场景,比如购物网站,加购物车,付款这些过程需要记录前一个页面的状态,假如你选了一购物车的货物,准备去付款页面付款,此时你的商品信息全部都没有了,这是行不通的。为了保持客户端与服务器之间的会话状态,就有了cookie和原创 2021-09-11 18:36:58 · 518 阅读 · 0 评论 -
FLask开发记录
文章目录1 自定义flask命令行命令2 flask shell3 .env 和 .flaskenv4 使用数据库迁移5 sqlalchemy关联表中的backref参数1 自定义flask命令行命令@app.cli.command() # command()如果传参那么参数是命令名字,如果不传参那么被装饰的函数名是命令名字def say_hello(): """ Test flask user define command """ click.echo("Helle原创 2021-09-08 00:50:52 · 143 阅读 · 0 评论 -
Flask源码剖析(1)
文章目录1 预备知识1.1 setattr、getattr、delattr1.2 python新式类的超能力1.3 实例初始化中的递归问题1.4 偏函数1.5 代理设计模式1.6 本地线程2 开始剖析flask2.1 创建一个最小的flask应用(1)(2)(3)请求进来执行app() 也就是Flask的call方法(4)wagi_app接受了请求参数组成的字段和可调用的响应2.2 使用请求参数(1) from flask import request(2) 请求参数被存储后的使用流程2.3 LocalP原创 2021-09-08 00:33:16 · 863 阅读 · 1 评论 -
<Flask>-sqlalchemy操作数据库
文章目录1 简述2-导包与配置3-增删改查3.1 增3.2 删3.3 改3.4 查4 一对多模型4.1 理解4.2 代码实现5 多对多模型5.1 理解5.2 代码实现6-自关联一对多模型6.1 理解6.2 代码实现7-自关联多对多模型7.1 理解7.2 代码实现8-数据库迁移写在最后的杂七杂八1 简述操作数据分为数据库模型的创建于数据库迁移,数据库的创建依赖于flask-sqlalchemy一对多模型多对多模型自关联一对多模型自关联多对多模型2-导包与配置import flask_sq原创 2021-08-29 11:53:38 · 2028 阅读 · 1 评论 -
自定义万能分页类
文章目录1 分页类2 django实际应用案例2.1 视图函数2.2 数据模型2.3 模板1 分页类utils.pageinfo.pyclass PageInfo(object): """ 通用分页类 """ def __init__(self, curent_page, total_page, show_page_nums, per_page_number, url_prefix): """ curent_page : 当前请求页,来原创 2021-06-08 10:09:45 · 462 阅读 · 0 评论 -
django中用cookie做用户登录,用装饰器做登录判断
import functoolsfrom django.shortcuts import redirectdef auth(func): @functools.wraps(func) def inner(*args, **kwargs): user = args[0].COOKIES.get("user") if not user: return redirect('/login/') res = func(*a原创 2021-06-04 23:13:44 · 172 阅读 · 0 评论 -
web框架实现原理-2(线程安全)
文章目录多线程下的web框架下期预告博主通过阅读flask,django源码,并且对http协议有深刻的研究后决定开始写本系列博客,内容主要是通过代码实例讲述,web服务的实现原理,代码没有做很好的封装,甚至会有伪代码,目的就是通俗易懂。有理解错误或者表达错误的请大牛指正,希望大家在交流中共同进步。上一篇链接:web框架实现原理-1博客中可能会有一些python对象内置的方法,下面链接博客可供简单参考python魔法方法浅析多线程下的web框架import socketimport threa原创 2021-05-23 22:18:07 · 345 阅读 · 0 评论 -
web框架实现原理-1(python)
文章目录1 最小web程序2 不同的请求返回不同的响应3 封装不同请求返回不同响应-视图函数4 返回一个html页面-静态网站5 返回一个html页面-动态网站-渲染模板(html文件)1 最小web程序import socketsock = socket.socket() # 实例化一个套接字sock.bind(("127.0.0.1",8080)) # 绑定IP和端口sock.listen(5) # 开启监听while True: client, addr = sock.accep原创 2021-05-22 23:52:17 · 241 阅读 · 0 评论 -
nginx+uwsgi+python3+flask+腾讯云(项目部署、亲测可用)
nginx+uwsgi+python3+flask+腾讯云1 部署python3环境http://note.youdao.com/noteshare?id=afb10f8f05f7cb81c11944fa9f4c91ce2 安装virtualenv2.1 在\usr\local目录下面创建python3文件夹,安装python32.2 创建一个虚拟环境,用于运行flask项目python -m virtualenv + 虚拟环境名称# 激活虚拟环境source venvname/bi原创 2020-12-16 14:22:00 · 568 阅读 · 0 评论