一.Flask蓝图目录 我们之前写的Flask项目都是自己组织的目录结构,其实Flask官方有其推荐的目录结构,以下就是一个符合官方推荐的Flask小型应用的项目结构目录示例,如下: 如图,这就是我们建立好的一个目录结构,一层一层的看一下,首先是app目录,它就是我们的主应用程序目录了,其中有一个__init__.py文件,里面的内容如下: from flask import Flask from .views.acc import acc_bp from .views.user import…
一.flask-session 1.为什么要使用flask-session 因为flask默认的session是通过请求上下文放入到Local中的,是存在内存的,而使用flask-session可以更改session存放的位置,可以存放在redis.memcached.filesystem.mongodb.sqlalchemy等数据库中,flask-session也是基于flask原本的session原理实现的,只是让session存放的位置更改了而已. 实现原理:-- 内置的session调用…
sqlalchemy是一个操作关系型数据库的ORM工具.下面研究一下单独使用和其在flask框架中的使用方法. 直接使用sqlalchemy操作数据库 安装sqlalchemy pip install sqlalchemy 初始化及操作数据库 # 导入: from sqlalchemy import Column, String, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarati…
昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生SQL> ORM 如:SQLAlchemy依赖pymysql 3. SQLAlchemy多线程连接的情况 一.flask标准目录结构 标准flask目录结构 Project name/ # 项目名 ├── Project name # 应用名,保持和项目名同名 │   ├── __init__.py #…
蓝图构建项目目录 什么是蓝图 一个应用中或跨应用制作应用组件和支持通用的模式 蓝图的作用 将不同的功能模块化 构建大型应用 优化项目结构 增强可读性,易于维护 蓝图构建项目目录 定义蓝图 app/admin/__init__.py from flask import Blueprint admin=Blueprint('admin',__name__) import views app/home/__init__.py from flask import Blueprint home=Bluep…
Flask 项目目录蓝图 小型项目 大型项目 定义蓝图 注册蓝图 template_folder="XXX" 参数是指 模板文件夹 注意 优先是找templates 在找自己指定的文件夹 static_folder="aa" 参数是 指定静态文件 启动蓝图…
今日内容 1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数 from flask import Flask app=Flask(__name__) #第一种方式 @app.route('/my_de') def my_de(): return '黑河' #第二种方式 app.add_url_rule( '/my_detail' , view_func=my_de) if __name__== '__main__': app.run(debug=True) 允许请求进入的8种请求方式:…
欢迎加入python学习交流群 667279387 最近在使用flask开发一个业余学习项目,由于之前都是"小打小闹",整个程序都是放在一个文件夹里面的,也没有注意这个问题.这次项目整的稍微正规一点,发现自己没有吃透flask蓝图的功能.这里记录一下自己遇到的问题,方便以后查阅. 问题: 注册了蓝图,但是找不到对应的URL.后来发现是自己没有正确使用蓝图. 原因 下面以一个简单的示例框架进行说明.首先看下本次示例代码矿建,这也是flask框架项目的常用架构. root@Ubuntu:~…
蓝图使用起来就像应用当中的子应用一样,可以有自己的模板,静态目录,有自己的视图函数和URL规则,蓝图之间互相不影响.但是它们又属于应用中,可以共享应用的配置.对于大型应用来说,我们可以通过添加蓝图来扩展应用功能,而不至于影响原来的程序.不过有一点要注意,目前Flask蓝图的注册是静态的,不支持可插拔. 创建一个蓝图 比较好的习惯是将蓝图放在一个单独的包里,所以让我们先创建一个"admin"子目录,并创建一个空的"__init__.py"表示它是一个Python的包.…
蓝图 使用场景 如果代码非常多,要进行归类.不同的功能放在不同的文件,把相关的视图函数也放进去. 蓝图也就是对flask的目录结构进行分配(应用于小,中型的程序) 当然对于大型项目也可以通过   url_prefix 加前缀的方式实现 使用方法 # __init__.py from .views.account import ac from .views.user import us app.register_blueprint(ac) app.register_blueprint(us) #…
它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,可以把蓝图理解为一个不能被run的Flask实例 创建一个用户文件:users.py from flask…
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做…
转自:http://spacewander.github.io/explore-flask-zh/7-blueprints.html 蓝图 什么是蓝图? 一个蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合.举个例子,想象一下我们有一个用于管理面板的蓝图.这个蓝图将定义像/admin/login和/admin/dashboard这样的路由的视图.它可能还包括所需的模板和静态文件.你可以把这个蓝图当做你的应用的管理面板,管它是宇航员的交友网站,还是火箭推销员的CRM系统. 我什么时候会用到…
Session 除请求对象之外,还有一个 session 对象.它允许你在不同请求间存储特定用户的信息.它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥. 设置:session['username'] = 'xxx' 删除:session.pop('username', None) from flask import Flask,url_for,session app = Flask(__name__) app.secret_key = …
怎样用flask蓝图来实现增删改查呢?请看下面的内容 这是我们的目录结构 从图中可以看出每一个功能都有一个各自的文件夹 首先我们要自己先来创建一个数据,在Flask_data.py中写入如下内容: STUDENT = [ {'id': 1, 'name': '萝卜忒', 'age': 38, 'gender': '男'}, {'id': 2, 'name': '齐欧能', 'age': 21, 'gender': '男'}, {'id': 3, 'name': '王玉萌', 'age': 24,…
接触Flask已经有大半年了,本篇博客主要来探讨如何规范化生产环境下Flask的项目目录结构.虽然目录结构见仁见智,个人有个人的看法和习惯,但总的来说,经过很多人的实践和总结,还是有很多共同的意见和想法的,而我在查看他人的目录结构结合自身在工作中的使用经验,总结了一个个人认为比较恰当的目录结构供参考. 我推荐的目录结构: . ├── README.md ├── application │ ├── __init__.py │ ├── controllers │ │ └── __init__.py…
Flask蓝图基本使用 Flask通过使用蓝图将视图函数模块化,使应用显得更加规整 比如我们的应用的视图函数包括用户相关和文章相关,那么我们可以通过建立两个py文件分别存储两类视图函数 user.py: from flask import Blueprint from flask import render_template from flask import request user = Blueprint('user', __name__) @user.route('/login', met…
Flask 中的 蓝图 Blueprint 不能被run的flask实例:相当于django中的app01 应用 蓝图作用:功能隔离 路由隔离 Blueprint就是 一个不能run的flask 蓝图的名称app01user 必须保证在app中是唯一 url_prefix 是url前缀:用于隔离相同url # blueprint.py from flask import Flask app = Flask(__name__) app.debug = True # 建立蓝图注册 一定要注册 fro…
首先,我对蓝图的理解相对通俗,就是觉得蓝图对于视图方法模块化.大项目协同开发过程中的一个很好的工具. 1.下图是我们通常情况下使用的项目组织结构…
Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 模板 使用 Flask-Bootstrap 使用表单 使用 Flask-WTF 使用 Flask-Bootstrap 和 WTF 自动生成表单 文件上传 理解 Contexts 路由分发机制 请求钩子 响应 使用 Flask-SQLAlchemy 密码安全认证 使用 Flask-Login 规模应用…
参考 flask挺挺轻巧的, 因此玩一玩它. 如果用它做大型点的项目, 就用到了它的蓝图组织项目. 一时半会不太清楚这玩意怎么用, 得撸一撸py基础了. 我搞了个movie小的flask栗子来用用蓝图小功能, git地址如下. 项目分前台 home, 后台admin模块.使用蓝图来组织. https://github.com/lannyMa/movie 首先,我对蓝图的理解相对通俗,就是觉得蓝图对于视图方法模块化.大项目协同开发过程中的一个很好的工具. 1.下图是我们通常情况下使用的项目组织结构…
一.SQLAlchemy简介 (1)flask_sqlalchemy是一套ORM框架. (2)ORM(Object Relationship Mapping):模型关系映射 (3)ORM的好处:可以让我们操作数据库跟操作类的对象一样.一个表可以抽象成一个类,一条数据可以抽象成该类的一个对象. 数据库表:article 进行ORM(模型关系映射)之后: class Article(Model): # 属性对应数据中的字段 id = Int() title = String() content =…
# 原创,转载请留言联系 Flask-SQLAlchemy 实现增加数据 用 sqlalchemy 添加数据时,一定要注意,不仅仅要连接到数据表,并且你的创建表的类也必须写进来.而且字段和约束条件要吻合,不然会报错的. sqlalchemy插入数据的格式一般是这样: 变量=创建表的类(字段名1=要插入的数据1,字段名2=要插入的数据2,...)    # 例如下面的18行 orm 框架的操作对象.session.add(变量)    # 例如下面的19行.add 也有另一种用法,见25行 orm…
# 转载请留言联系 ORM 是什么? ORM,Object-Relation Mapping.意思就是对象-关系映射.ORM 主要实现模型对象到关系数据库数据的映射. 优点 : 只需要面向对象编程, 不需要面向数据库编写代码. 对数据库的操作都转化成对类属性和方法的操作. 不用编写各种数据库的sql语句. 实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异. 不在关注用的是mysql.oracle...等. 通过简单的配置就可以轻松更换数据库, 而不需要修改代码. 缺点 : 相比较直接…
Flask 蓝图进行路由分发 Flask虽然说是一个轻型web框架,但也总不能用一个py文件写完全部view吧,所以我们要把路由分到不同的py文件中.这就需要用到蓝图了. 一 创建一个py文件 用于处理分过来的url,如创建music.py from flask import Blueprint music = Blueprint('music', __name__) @music.route("/") # 即 /music/ def roo(): return "music…
Flask蓝图提供了模块化管理程序路由的功能,使程序结构清晰.简单易懂.下面分析蓝图的使用方法 假如说我们要为某所学校的每个人建立一份档案,一个很自然的优化方式就是这些档案如果能分类管理,就是说假如分为老师.学生.后勤人员等类别,那么后续查找和管理这些档案就方便清晰许多.Flask的蓝图就提供了类似“分类”的功能. 下面先上一张较大型程序的组织结构图   1 可以看到在app文件夹下有两个文件夹main和auth内含有视图函数,而main和auth就是注册的两个蓝图. 1. 蓝图的创建及注册 在…
使用Flask蓝图(blueprint) 回顾 先来看一下上一篇的作业吧,使用「logbook」的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标准时间(utc),而我们的北京时间是比世界标准时间早8个小时的. 解决方案 其实在我们工作中经常会遇到很多奇怪的问题,最最简单的方式就是使用搜索引擎搜索对应的报错信息.然后找到结果最接近的内容,一般在「Stack Overflow」 「segmentfault」 「简书」 「CSDN」 「博客园」 「开…
flask.app该模块2000多行代码,主要完成应用的配置.初始化.蓝图注册.请求装饰器定义.应用的启动和监听,其中以下方法可以重点品读和关注 def setupmethod(f): @setupmethoddef register_blueprint(self, blueprint, **options): @setupmethoddef add_url_rule(self, rule, endpoint=None, view_func=None, provide_automatic_opt…
Flask基础 知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2.实例化Flask对象,里面是有参数的 app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx') 3.两种添加路由的方式 方式一: @app.route('/xxxx') # @decorator def index(): return "Index" 方式二: def…
1.安装Flask 方式一:使用pip命令安装 pip install flask 方式二:源码安装 python setup.py install 验证 第一个Flask程序 程序解释 参数__name__:表示Flask应用的主模块或包的名称.Flask使用该参数确定应用的位置,然后找到应用中其他文件的位置,如网页中的图片目录,模块目录:参数写成__name__就代表是想要得到主模块的实例:找其他文件的话,Flask()括号中参数需要填其他内容 装饰器app.route():表示一个路由配置…