
flask学习笔记
正午12:00
为山者,基于一篑之土,以成千丈之峭;凿井者,起于三寸之坎,以成万仞之深。
展开
-
【python-flask学习笔记】1.URL和视图
最近在学习python-flask框架学习,以下为观看知了课堂黄勇老师讲解的教学视频的第一章的学习笔记,坚持下去,加油1.1 第一个flask程序讲解(1)第一次创建项目的时候,要添加flask的虚拟环境。添加虚拟环境的时候,一定要选择到python这个执行文件。比如你的flask的虚拟环境的目录在/user/Virtualenv/flask-env/bin/python。(2)一...原创 2019-07-12 18:54:09 · 431 阅读 · 0 评论 -
【flask进阶学习笔记】3. 标准类视图及其使用场景
之前我们接触的视图都是函数,所以一般简称为视图函数。其实视图函数也可以基于类来实现,类视图的好处是支持继承,写完类视图需要通过app.add_url_rule(url_rule, view_func)来进行注册。标准类视图1、标准类视图必须继承flask.views.View2、必须实现dispatch_request方法,以后请求过来后,都会执行这个方法,这个方法的返回值相当于之前的视图函...转载 2019-08-20 20:22:20 · 457 阅读 · 0 评论 -
【flask进阶学习笔记】2. 视图高级之add_url_rule和approute原理剖析
之前我们使用@app.route这个装饰器来把视图函数和url绑定@app.route('/')def hell_world(): return 'hello world'而且我们可以通过url_for(‘hello_world‘)反转得到url /实际上我们可以给这个装饰器再加上endpoint参数,给这个url命名# simple1@app.route('/', endp...转载 2019-08-19 22:17:52 · 774 阅读 · 0 评论 -
【flask进阶学习笔记】1.自定义URL转换器
1、自定义方法:a 实现一个类,继承“BaseConverter”b 在自定义类中,重写‘regex’,也就是这个变量的正则表达式;c 将自定义类映射到“app.url_map.converters”上。举例:实现一个URL中,自定义手机号码格式from werkzeug.routing import BaseConverter Class TelephoneConverter(...原创 2019-08-18 18:01:01 · 281 阅读 · 0 评论 -
【python-flask学习笔记】5.1 get请求和post请求及保存全局变量的g属性
1、简介(1)get请求:使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求。传参:get请求传参是放在url中的,并且是通过?的形式来指定key和value。(2)post请求:使用场景,如果要对服务器产生影响,那么使用post请求。传参:post请求传参不是放在url中的,是通过from data的形式发送给服务器的。2、post和ge...原创 2019-07-17 11:46:56 · 744 阅读 · 0 评论 -
【python-flask学习笔记】4 session和cookie
1、Cookie和Session概念(1)cookie: 在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,...原创 2019-07-16 22:24:38 · 264 阅读 · 0 评论 -
【python-flask学习笔记】3.6 SQLAlchemy-flask-migrate
1、简介及安装在实际开发中经常存在后期进行数据库修改行为,一般我们修改数据库不会手动修改,而是修改ORM对应的模型,然后把数据库模型映射到数据库中。之前的方法db.creat_all()方法只在第一次运行时会执行,在后期再次修改数据库的字段时,不会再自动的映射到数据库中,必须删除表,然后重新运行db.creat_all()才能生效,重新进行映射。这不符合我们的需求。因此flask-migr...原创 2019-07-16 13:45:09 · 423 阅读 · 0 评论 -
【python-flask学习笔记】5.2 上下文和常见的钩子函数
Flask上下文Flask项目中有两个上下文,一个是应用上下文(app),另外一个是请求上下文(request)。请求上下文request和应用上下文current_app都是一个全局变量。所有请求都共享的。Flask有特殊的机制可以保证每次请求的数据都是隔离的,即A请求所产生的数据不会影响到B请求。所以可以直接导入request对象,也不会被一些脏数据影响了,并且不需要在每个函数中使用requ...原创 2019-07-18 10:52:14 · 240 阅读 · 0 评论 -
【python-flask学习笔记】3.5 SQLAlchemy-分开models和解决循环引用
1、分开models的目的方便代码管理 解决循环引用2、循环引用的产生以【python-flask学习笔记】3.1 SQLAlchemy-配置连接与初始化及表映射中的 '实例' 部分的'simiple.py'为例,为了方便代码管理,我们可以把'classArticle()' 和 'class User()'两个模型提取出来单独写到一个文件('models.py')里。如下:...原创 2019-07-15 20:56:12 · 981 阅读 · 2 评论 -
【python-flask学习笔记】3.4 SQLAlchemy-flask_script讲解
1、flask_scriptflask_script的作用是可以通过命令行的形式来操作flask。例如通过命令跑一个开发版本的服务器、设置数据库、定时功能等。2、安装首先进入到项目的虚拟环境中,然后'pip install flask_script'来安装。3、执行命令的输入方式如果直接在主'manager.py'中写命令,那么就在终端就只需要输入一个父命令,比如:'pytho...原创 2019-07-15 19:46:11 · 186 阅读 · 0 评论 -
【python-flask学习笔记】3.3 SQLAlchemy-多对多关系
数据表多对多关系多对多关系多对多关系,需要通过一个中间表进行关联 中间表,使用db.table的方式创建,不能通过class方式实现 设置关联:tags = db.relationship('Tag',secondary=article_tag,backref=db.backref('articles')),需要用一个关键字参数secondary='中间表名称'来进行关联。 多对多关...原创 2019-07-15 10:16:54 · 348 阅读 · 0 评论 -
【python-flask学习笔记】3.2 SQLAlchemy-数据增删改查及外键约束
准备工作(1)设置配置信息config.py# 数据库连接遵循这个语句# dialect+driver://username:password@localhost:port/database?charset=utf8DIALECT = 'mysql'DRIVER = 'pymysql'USERNAME = 'root'PASSWORD = 'root'HOST = '127....原创 2019-07-14 23:35:51 · 497 阅读 · 0 评论 -
【python-flask学习笔记】3.1 SQLAlchemy-配置连接与初始化及表映射
1、简介(1)ORM(Object Relationship Mapping):模型关系映射,把关系数据库的表结构映射到对象上ORM优点: 隐藏数据访问细节,提高开发效率 构造数据结构变得简单 ORM缺点: 降低执行效率,增加学习成本 无法进行复杂的查询 (2)flask_sqlalchemy是一套ORM框架。(3)安装:pip install flask-sql...原创 2019-07-14 22:37:11 · 689 阅读 · 0 评论 -
【python-flask学习笔记】2.6 Jinja2模版-URL链接和加载静态文件
1、url跳转通用语法url_for('static', filename='xxx路径')url跳转视图函数代码:@app.route('/login/')def login(): return render_template('login.html')html代码:<a href = "{{ url_for('login') }}">点我跳转...原创 2019-07-13 22:23:42 · 1176 阅读 · 0 评论 -
【python-flask学习笔记】2.5 Jinja2模版-继承、包含页、宏macro、块block、set及with
1、继承extends作用:将模板公用的代码放在父模板base.html中,其他html页面通过继承父模板的方式避免重复的代码语法:{% extends 'base.html' %}2、包含页include如果有一些HTML代码是经常用到的固定的,为了避免整个HTML文档看起来很拥挤,内容嘈杂。可以将这一部分的代码,保存为了一个HTML模板,然后要用的时候,再用{%...原创 2019-07-13 22:06:01 · 558 阅读 · 0 评论 -
【python-flask学习笔记】2.4 Jinja2模版-过滤器
1、过滤器的介绍和语法* 介绍:过滤器可以处理变量,把原始的变量经过处理后在展示出来。作用的对象是变量。* 语法:{{ avatar | default('xxx') }}1.1 default()过滤器<body> <p>过滤器模板文件</p> <img src="{{ img_url | default('http:...原创 2019-07-13 15:58:51 · 369 阅读 · 0 评论 -
【python-flask学习笔记】2.3 Jinja2模版-if/for用法及字典和列表的遍历
2.3.1 if判断语句(1)语法:if的使用和python中的使用相差无几。{% if xxx %}{% elif xxx %}{% else %}{% endif %}(2)示例:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...原创 2019-07-13 10:28:07 · 2114 阅读 · 0 评论 -
【python-flask学习笔记】2.1-2.2Jinja2模版-传参和模板中访问参数
2.1 Flask渲染Jinja2模板和传参(1)如何渲染模板* 模板放在'templates'文件夹下。(如新建个'index.html'文件)* 从'flask'中导入'render_template'函数。* 在视图函数中使用'render_template'函数,渲染模板,注意:只需填写模板名称,不要填写templates这个文件夹的路径,因为该文件夹是项目默a认的静态文...原创 2019-07-12 22:11:10 · 542 阅读 · 0 评论 -
【flask进阶学习笔记】4. 蓝图及子域名
1. 蓝图1.1 蓝图的基本使用之前我们写的代码都是集中在一个主程序文件里面。这样不利于分层解耦和维护。蓝图的作用就是让我们的flask项目更加模块化结构更加清晰,可以将相同模块的视图函数放在同一个蓝图下,同一个文件中,方便管理比如,设计的网站有如下几个模块 读书 —book 电影 —movie 新闻 —news 用户 —user我们新建了一个Python Package...转载 2019-08-20 21:55:58 · 195 阅读 · 0 评论