深入理解flask 笔记】的更多相关文章

===sqlalchemy创建的数据模型中:1 字段是类属性   [模型中定义的字段是类属性,表单中定义的字段也是类字段] 2 若数据库不支持bool类型,则sqlalchemy会自动将bool转成0和1 3 若不显示指明表名,则表名为模型名的小写 4 sqlalchemy默认的__init__会将定义的类属性作为__init__的关键字参数 ===查询语句:User是类名,不是实例名 1 User.query.all() 2 User.query.limit(10).all() 3 User.…
Flask 添加登陆验证装饰器报错,及解析 写这个之前,是想到一个需求,这个是关于之前写Flask笔记(二)中的一个知识点,路由相关 需求为 : 有一些页面必须是登陆之后才能访问的,比如ShoppingCart,说白了就是写一个登陆验证,那怎么才能知道当前这个请求 就是登陆状态的呢?如果不是登陆状态,那应该重定向到login页面 from flask import Flask,request,session,redirect,url_for app = Flask(__name__) # 如果要…
Flask笔记 首先明确一下,要运行一个动态网页,我们需要 一个 Web 服务器来监听并响应请求,如果请求的是静态文件它就直接将其返回,如果是动态 url 它就将请求转交给 Web 应用. 一个 Web 应用来动态处理请求,生成响应 其中 Web 服务器通常都是别人已经实现好了的,它通过定义好的接口与我们编写的 Web 应用通信.WSGI 就是一个统一的 Web 服务器接口标准,如果我们按照 WSGI 编写 Web 应用,那么它就能在任何符合该标准的服务器上运行,例如 Gunicorn.(对比一…
软件架构理解 1FastDFS介绍 1.1什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服…
最近学习flask,由于web开发方面接触的并不是很多,所以看官方文档有点焦头烂额,好多的概念不理解. <Flask web 开发>比较基础,先用这本书做个入门. 1.Flask实例化对象用来接收客户端的所有请求. from flask import Flaskapp = Flask(__name__) 2.路由实现URL和python函数之间的映射,应用python中的修饰器. @app.route('/')def index():return '<h1>Hello World!…
RESTful是用于前台和后端进行通信的一种规范或者说一种风格,采用的是HTTP和HTTPS协议,数据传输的格式使用的都是JSON,而不是XML.通常,RESTful的URL中只有名词,没有动词,而且名词在复数的情况就应该使用其复数的形式.网上有专门讲解RESTful的详细教程,本文只是Flask中用于实现RESTful规范的插件Flask-RESTful的学习笔记,就不详细介绍RESTful了. 安装:pip install Flask-RESTful 使用场景:一般来说,如果URL是用于向前…
Flask中有内置的一些信号,也可以通过三方库blinker自定义信号,其实Flask内置的信号也是优先使用的blinker库,如果没有安装blinker才会使用自定义的信号机制.可以通过点击任意导入的内置信号查看源码,同时也可以看到具体有哪些内置的信号. 一般安装Flask时会自动安装blinker,如果没有安装通过pip安装即可:pip install blinker. 为了更好的理解信号的具体操作,下面先看下怎么通过blinker自定义信号,再列出内置的信号. blinker自定义信号 其…
session与cookie: cookie是一项浏览器的技术,而不是服务器的技术,服务器端是无法直接操作cookie的,只能通过返回Response响应告诉浏览器怎么操作cookie.而session则更像是一种解决方案,一种在服务器端存储授权信息的解决方案,不同的语言,不同的框架对于session的实现方式可能都是不同的,对session的理解和操作可能都不一样.同时,session更是一种解决cookie安全隐患的方式,用户名和密码等信息都是存放在session中的,而session内容是…
first_flask_project.py # 从flask这个包中导入Flask这个类 # Flask这个类是项目的核心,以后很多操作都是基于这个类的对象 # 注册url.注册蓝图等都是基于这个类的对象 from flask import Flask # 创建一个Flask对象,传递__name__参数进去 # __name__参数的作用: # 1. 可以规定模版和静态文件的查找路径 # 2. 以后一些Flask插件,比如Flask-migrate.Flask-SQLAlchemy如果报错了…
flask框架使用jinja2模板引擎.简单的说,模板就是一个纯html文件中夹杂着占位符,在渲染模板时用真实变量值替换占位符,就形成了最终的前台页面. 1.模板存放位置: 默认情况下,flask在根目录下的templates文件夹下寻找模板: 2.渲染模板: render_template('模板名') 3.变量表示: 使用下面形式的占位符表示变量 {{ var }} 4.jinja2支持流程控制,循环,宏,模板继承,所有的语句都要写在以下形式的占位符中: {% if %} {% else %…
第一个flask web程序 1.初始化(所有flask程序都必须创建一个程序实例,程序实例是Flask类的对象): from flask import Flask app = Flask(__name__) 2.路由和视图函数(处理url和函数之间关系的程序称为路由,视图函数是返回某个请求的响应的函数,我们需要把视图函数注册为某个Url的处理函数.下例把index函数注册为根地址的处理函数): @app.route('/') def index() : return 'hello,world!…
1.创建应用的根目录: 2.在根目录下创建独立的虚拟python运行环境,创建完成后当前目录会有一个文件夹,即该独立环境(使用--no-site-pachages参数将不会复制任何系统python环境中的第三方包,得到一个纯净的python环境:venv是独立环境的名称,自己命名): virtualenv --no-site-packages venv 3.激活该虚拟环境: source venv/bin/activate 如果需要退出虚拟环境,使用deactivate命令 4.使用pip安装f…
1.路由: route() 装饰器用于把一个函数绑定到一个 URL,可以动态变化 URL 的某些部分,还可以为一个函数指定多个规则,从而方便用户访问与记忆. 例子: @app.route('/') #调用一个app的route方法 def hello_work(): #定义一个处理方法 return '<h1>hello world</h1>' @app.route('/test') #创建第二个应用,并指定访问路径 def index(): return 'index page'…
web表单 web表单是浏览者和网之间的一个互动平台,完成浏览器和服务器之间的数据交互. 1.用Flask-WTF来处理表单 (1)在根目录下编辑扩展配置--config.py CSRF_ENABLED = True SECRET_KEY = 'you-will-never-guess' CSRF_ENABLED配置跨站点保护,就是防止程序挟持用户执行非本意的操作,是一种web的攻击行为,这个设置会提高web的安全性. SECRET_KEY是当CSRE(跨站请求伪造)激活时执行,实现加密用来验证…
# -*- coding: utf-8 -*- from flask import Flask,render_template,request,redirect,session,url_for import time app = Flask(__name__,template_folder="templates") app.secret_key = "A" #类似于加密盐 app.config["SERVER_NAME"] = "jia…
1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>absolute的包裹性</title>…
1.vertical-align基本认识 支持的属性值: ①线类:baseline(默认),top,middle,bottom ②文本类:text-top,text-bottom ③上标下标类:sub,super ④数值百分比类: 数值和百分比的共性:ⅰ都带数字:ⅱ都支持负值:ⅲ行为表现一致(都是在baseline基础上上下偏移数值大小,百分比类以line-height计算,IE6/IE7下vertical-align百分比值不支持小数line-height). 2.vertical-align…
1.margin与容器尺寸 元素尺寸:①可视尺寸 clientWidth(标准):②占据尺寸 margin与可视尺寸:①适用于没有设定width/height的普通block元素:②只适用于水平方向尺寸 margin与占据尺寸:①block/inline-block水平元素均适用:②与有没有设定width/height无关:③适用于水平方向和垂直方向.可用于页面的上下留白(padding兼容性不好). 2.margin与百分比单位 普通元素的百分比:相对于容器宽度计算. 绝对定位元素的百分比:相…
在这里先说一下最开始所经历的一些错误app=Flask(_name_),当初拼写的时候怎么都报错后来发现此处是两个'_' 配置文件 app.config.from_object(__name__) 在当前文件中查询配置项 app.config.from_envvar('FLASKR_SETTINGS', silent=True) 在文件中查询配置现,其中FLASKR_SETTINGS代表环境变量,silent=True代表Flask不关心该环境变量键值是否存在 @app.route('/')de…
http://flask.pocoo.org/ http://flask.pocoo.org/docs/0.12/api/#api API http://docs.pythontab.com/flask/flask0.10/quickstart.html 文档 http://flask-restful.readthedocs.io/en/latest/ Flask-RESTful是Flask的扩展,增加了对快速构建REST API的支持.鼓励最小化设置的最佳做法. http://www.cnbl…
Pop Sequence(25 分) Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is…
flask-login插件的使用 安装: pip install flask-login 初始化LoginManager ##############LoginManager设置################## loginmanager=LoginManager() loginmanager.login_view='biziness.flask_login' 业务逻辑层中的flask_login视图函数 loginmanager.session_protection='strong' log…
https://blog.csdn.net/barrysj/article/details/51519254 1.AppContext类即是应用上下文,可以看到里面只保存了几个变量,其中比较重要的有: app是当前web应用对象的引用,如Flask:还有g,用来保存需要在每个请求中需要用到的请求内全局变量   2.RequestContext即请求上下文,其中有我们熟悉的request和session,app和应用上下文中的app含义相同…
Flask中的路由 查看整个flask中的路由映射关系 app.url_map from flask import Flask app = Flask(__name__) @app.route("/index") def index() return "flask index page" if __name__ == "__main__": print(app.url_map) app.run() # 下面是打印效果 ''' Map([<R…
1.第一个flask项目 # 首先你要安装flask这个模块 pip install flask # 安装好了之后,直接新建一个py文件,开始写最简单的flask项目了 from flask import Flask app = Flask(__name__) @app.router("/") def index(): return "helle flask" if __name__ == "__main__": app.run() # 开始fl…
线程隔离Thread Local: 如果一个对象具有线程隔离的特性,就可以称之为“Thread Local”,线程隔离是指该对象在不同的线程中都是独立的,在一个线程中对该对象的操作不会影响另一个线程对该对象操作,比如在线程A中修改了该对象的某个属性值,但是在线程B中该对象的这个属性值并没有被修改. Flask线程隔离对象: 在Flask中,线程隔离对象包括request.session.g.current_app等,在项目中这些对象都可以直接导入使用,而不用担心运行时不同的地方同时使用这些对象时…
在网站中,HTTP请求是无状态的:第一次请求成功后,第二次请求时服务器依然不知道这次请求的所属用户是谁.为了解决这个问题,在第一次请求成功后,服务器会生成并返回对应的cookie信息给浏览器,而浏览器在下一次请求同一个网站的时候就会自动(不需要再输入用户名和密码了)将其cookie信息附在请求上,此时服务器根据请求中的cookie信息就知道用户是谁了. cookie存储的数据量是有限的:虽然不同浏览器会有具体的大小限制,但是一般不会超过4KB(4KB已经算是很大了),因此cookie只能用来存储…
文件上传 enctype:在HTML中的form表单中form标签默认是`enctype="application/x-www-form-urlencoded"`,在文件上传时需要设置为`enctype="multipart/form-data"`,不然文件上传不会成功. 后台获取上传的文件:fileobj = request.files.get('input_file_name'),需要注意的是,get方法的参数是HTML中文件input标签指定的name属性值,…
在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式. 比如说,Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西: 必须使用它的模块机制.必须使用它的依赖注入 必须使用它的特殊形式定义组件(这一点每个视图框架都有,难以避免): 所以Angular是带有比较强的排他性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成,这些主张会带来一些困扰…
1.CBV 模式 1.继承 views.MethodView from flask.views import MethodView 2.HTTP具有 8 种请求方法 - CBV中的方法 - GET 获取 - POST 增加 - DELETE 删除 - PUT 更新 - OPTIONS 跨域请求 - HEAD ? 3.例子 from flask import Flask from flask.views import MethodView app = Flask(__name__) class L…