
flask框架
文章平均质量分 56
flask框架的学习笔记
LCY133
这个作者很懒,什么都没留下…
展开
-
flask使用cookie (设置cookie与查看cookie内容)
这两个部分的内容本质上是一样的,浏览器会在检测到响应中的cookie后自动将内容存到应用程序下,在我用浏览器进行测试时是可以看到这个现象的,但是当进行 前后端分离开发时,通过前端页面请求接口时,只能看到网络中的cookie,不能看到应用程序中的cookie存储,这是个问题。从网络页面可以看到这些记录的cookie,从应用程序页面也能看到。原创 2023-08-09 13:48:31 · 1651 阅读 · 0 评论 -
flask学习之 pipenv 虚拟环境配置 在配置中出现错误“cmd“不是内部或外部命令,也不是可运行的程序或批处理文件””的解决方案
虚拟环境背景:到目前为止,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Django 0.9两套环境呢?这时候我们就可以原创 2020-10-10 01:48:10 · 3177 阅读 · 1 评论 -
flask整理之 flask程序中的debug模式
开启debug的模式的场景:在开发中应用,到生产环境,给用户看的肯定不能开启debug模式,不能告诉客户具体的内容。开启debug模式的方法:app.config.update(DEBUG=True)# 或者app.config.update({'DEBUG':True})完整代码:from flask import Flaskapp = Flask(__name__)@app.route('/') # 路由def hello_world(): a = 1/0 .原创 2020-10-10 17:03:47 · 447 阅读 · 0 评论 -
flask学习之配置文件
比如设置配置到debug模式,可以通过改主程序中的代码的情况,但是这样效率低,需要设置专门的配置文件对代码进行相应的配置。比如可以设置到debug模式时遇到特定的错误通过抛出异常的方式在flask中可以通过以下两种方式引入配置文件: app.config.from_object(config) app.config.from_object('config')配置文件名字为config.py代码HOST = '127.0.0.1'DEBUG = True主程序:from fla原创 2020-10-10 17:25:44 · 328 阅读 · 0 评论 -
flask入门学习之第一个程序及装饰器回顾
在配置完成虚拟环境和安装flask后,开始第一个基于flask框架的程序 hello world。1.在虚拟环境下建立工程注:选择解释器时选择用Virtualenv,选择base interpreter时选择d:\envs\flaskTest***\Script\python.exe2.在环境中新建文件夹和文件,代码:from flask import Flaskapp = Flask(__name__)# 装饰器 以下运行app就是运行这段代码@app.route('/原创 2020-10-10 12:14:50 · 247 阅读 · 1 评论 -
flask学习之URL与视图
URL与视图URL中文全称:统一资源定位符 其实通俗理解就是网址原创 2020-10-12 09:21:48 · 144 阅读 · 0 评论 -
flask课堂笔记之url_for
url_for:一般我们通过一个URL就可以执行到某一个函数。如果反过来,我们知道一个函数,怎么去获得这个URL呢?url_for函数就可以帮我们实现这个功能。url_for()函数接收两个及以上的参数,他接收函数名作为第一个参数,接收对应URL规则的命名参数,如果还出现其他的参数,则会添加到URL的后面作为查询参数。将来如果修改了URL,但没有修改该URL对应的函数名,就不用到处去替换URL了。url_for()函数会转义一些特殊字符和unicode字符串,这些事情url_for会自动的帮我们搞定.原创 2020-10-14 11:22:01 · 263 阅读 · 1 评论 -
flask框架之模板与模板传参
背景:当前主要为前后端的分离开发,框架中应用现成的HTML文件就可以实现通过python程序调用现成的HTML框架实现某些网页的显示。延伸是实现python程序与HTML的数据交互。第一部分:原创 2020-10-15 11:27:54 · 713 阅读 · 0 评论 -
flask学习之 网页跳转与重定向
概念网页跳转:常见的场景,网页A中有个链接B,通过点链接B,可以跳转到网页B重定向:访问一个网页时,如果没有满足某些条件,可以重新定向到另一个网页重定向永久重定向永久性重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问,最经典的就是京东网站,你输入www.jingdong.com的时候,会被重定向到www.jd.com,因为jingdong.com这个网址已经被废弃了,被改成jd.com,所以这种情况下应该用永久重定向。暂时重定向暂时性重定向:ht原创 2020-10-15 11:56:02 · 1372 阅读 · 0 评论 -
flask学习之jinja2模板自带的过滤器
jinja2模版过滤器管道符号|连接的过滤器相当于一个函数,吧当前的变量传入到过滤器中,过滤器根据自己的功能进行渲染,比如输入大写时但是显示为小写,输入小写显示为大写字母等操作。jinja自带的过滤器很多,下文将介绍调用方式。from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')def index(): context = { 'username': 'lcy', .原创 2020-10-15 16:05:51 · 513 阅读 · 0 评论 -
flask学习之自定义过滤器
flask是一个轻量级,简便的过滤器,可以进行简便的自定义过滤器自定义过滤器方法:@app.template_filter()def my_filter(value) return ***完整代码from flask import Flask,render_templateimport datetimeapp = Flask(__name__)@app.route('/')def index(): context = { 'username': 'hello原创 2020-10-16 10:27:14 · 456 阅读 · 2 评论 -
flask之控制语句 if 语句与for语句
简介控制语句这些内容是写在HTML文件中的,所有的控制语句都是放在{% … %}中,并且有一个语句{% endxxx %}来进行结束,因为格式比较统一而且字符多,建议将这些加入到自动补全中,参考:https://blog.youkuaiyun.com/LCY133/article/details/109098845Jinja中常用的控制语句有if/for…in…if:if语句和python中的类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来原创 2020-10-16 12:07:39 · 791 阅读 · 0 评论 -
flask之宏和import语句
宏的定义与使用场景:模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量import 与python一样,通过import调用宏,调用其中的函数方法例子:{% macro input(name, value='', type='text') %} <input type="{{ type }}" name="{{ name }}" value="{{ value }}">{% e.原创 2020-10-16 16:00:07 · 400 阅读 · 1 评论 -
flask学习之include语句
include语句可以提高代码的复用性,比如代码开头和结尾需要被大量的复用,可以将其写成一个独立的代码比如对HTML文件:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <ul> <li>国际</li原创 2020-10-19 10:38:03 · 562 阅读 · 0 评论 -
flask学习之set语句
应用场景:内部传参与外部传参内部传参指的是通过从HTML内部set参数,外部传参指的是通过py文件传参,前文描述过https://blog.youkuaiyun.com/LCY133/article/details/109080457全局变量与局部变量全局变量指的是在整个HTML中都会用到的,局部变量用with包裹起来,在局部起作用语法:{% set name='lcy' %}那么以后就可以使用name来代替lcy这个值了赋值语句创建的变量在其之后都是有效的,如果不想让一个变量污染全局环境,可以使原创 2020-10-19 11:39:40 · 634 阅读 · 0 评论 -
flask学习之模板继承
应用背景:Flask中的模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义block给子模板开一个口,子模板根据需要,再实现这个block,假设现在有一个base.html这个父模板通过include的方式只能是原封不动的继承,不能重写同样,extends的方式不加其他内容也无法修改,需要在基类base.html中加入block语法:<!DOCTYPE html><html lang="en"><head> .原创 2020-10-19 16:18:36 · 256 阅读 · 0 评论 -
flask学习之加载静态文件
应用背景:这里的静态文件主要介绍三种:css文件 js文件 图片文件使用方法:加载这三个文件的位置:是在父模板还是子模板呢?放在父模板里的通畅加载这三个内容是在最顶部就开始加载的,放在父模板里,放在子模板有可能出现加载不出来的情况方法:在Jinja中加载静态文件非常简单,只需要通过url_for全局函数就可以实现。{{ url_for('static',filename='js/index.js') }}类似于这样的方式,从全局的角度调用url_forcss的加载:<li.原创 2020-10-20 12:24:14 · 2110 阅读 · 2 评论 -
flask实践之第一个项目“盗版的豆瓣评分”
学习flask框架一段时间了,后续进行盗版豆瓣评分网页的开发功能包含的内容1.css文件传参数表示网页结构 2.静态图片的加载(不再采用静态图片,网络图片被采用)3.HTML:宏使用 4.include set 5.模板的继承 6.参数传递 等等python文件内主要定义了相关参数HTML文件中主要定义了...原创 2020-10-22 15:12:16 · 359 阅读 · 0 评论 -
flask实践之“盗版豆瓣评分小程序”加入参数与宏操作
前文写过通过python文件引入参数(图片,标题,评分,星级),通过宏操作,多次调用一段代码,达到多次引入图片文字的目的。python文件:from flask import Flask,render_templateapp = Flask(__name__)# 电影movies = [ { 'id': '11211', 'thumbnail': 'https://img3.doubanio.com/view/movie_poster_cover/lpst原创 2020-10-22 16:55:09 · 280 阅读 · 0 评论 -
flask实践之“盗版豆瓣评分小程序 完整版”
注:远离浑身散发负能量的人,多与正能量爆棚的人交流,最近真的是找到原因了在本文中,进行了小程序的优化,加入了一些宏操作,加入更多选项,可以通过点击更多进入更复杂的页面。将一个完整的程序,分为多个小的子程序,使程序的逻辑更加清晰。一个好的方法:“ctrl+shift+r” 在加载出来网页后,可以通过此方式清缓存,但是:有些网页一旦这样清缓存就不能再将文件加载出来了。关于宏操作:定义宏:在本文件中定义宏的位置是在文件macro.html中,{% macro itemGroup(thumbnail原创 2020-10-23 14:19:37 · 345 阅读 · 0 评论 -
flask学习之类视图与标准类视图
类视图的应用背景:之前我们接触的视图都是函数,所以一般简称视图函数,函数视图的问题在于,每个新的页面要一个路由函数,比较复杂。其实视图也可以基于类来实现,类视图的好处是支持继承,但是类视图不能跟函数视图一样,写完类视图还需要通过app.add_url_rule(url_rule,view_func)来进行注册。类测试 可以返回json类型的数据标准类视图:标准类视图是继承自flask.views.View,并且在子类中必须实现dispatch_request方法,这个方法类似于视图函数,也要返回一个.原创 2020-10-23 19:25:23 · 318 阅读 · 0 评论 -
python操作数据库 SQLAlchemy库与orm操作(创建表与添加数据操作 简单操作)
通过python操作数据库的方式可以是SQLAlchemy,具体代码如下:from sqlalchemy import create_engine# 创造一个引擎 与mysql相连接# 连接数据库# 主机地址HOSTNAME = '127.0.0.1'# 数据库名称DATABASE = 'flask_demo'# 端口PORT = 3306# 用户名和密码USERNAME = 'root'PASSWORD = 'root'DB_URL = 'mysql+pymysql:原创 2020-10-30 12:29:39 · 1548 阅读 · 0 评论 -
python SQLAlchemy ORM操作数据库之 增删改查
数据库的操作中,增删改查是最重要的,最常用的操作,数据库的重头戏原创 2020-11-02 10:58:52 · 879 阅读 · 0 评论 -
flask框架学习之:SQLAlchemy-ORM框架与数据库操作
程序步骤:1.定义连接数据库的相关参数2.engine与Base3.定义表征数据库的类,继承Base4.创建表与表的相关操作代码与功能:1.定义参数:# 地址HOSTNAME = '127.0.0.1'# 数据库DATABASE = 'class_database'# 端口PORT = '3306'# 用户名和密码USERNAME = 'root'PASSWORD = 'root'# 继承该函数的基类DB_URL = 'mysql+pymysql://{}:{}@{}:原创 2020-11-04 12:00:56 · 215 阅读 · 0 评论 -
flask学习之sqlAlchemy_orm之聚合函数
聚合函数共分为:func.count:统计行的数量。func.avg:求平均值。func.max:求最大值。func.min:求最小值。func.sum:求和。在程序的最后会进行相关的演示中间需要的操作还有如下几部分:1.生成表格2.批量用随机数填充内容到表格3.计算聚合函数值1.生成表格:engine = create_engine(DB_URL)# 都要继承这个函数生成的基类Base = declarative_base(engine)class User(Base)原创 2020-11-04 15:38:24 · 2069 阅读 · 0 评论 -
flask学习之数据表对应关系:一对多
表对应关系存在三种 一对一 一对多 多对多一对多:假设要添加一个功能,保存用户的邮箱账号,并且邮箱账号有多个,这时候就必须创建一个新的表,用于存储用户的邮箱,通过user.id来作为外键进行引用在本例子中,使用的是一个作者与文章的实例,一个作者可以有多篇文章,这就是个一对多,但是每篇文章对应的是一个作者。在这里要从一篇文章找文章的作者,找到的是一个确定的值,如果从一个作者找到其文章,找到的是一个可迭代对象,因为是存在一对多,查到的是1个可迭代的。实现方式:1.引入relationship原创 2020-11-11 17:05:16 · 322 阅读 · 2 评论 -
flask框架之表对应关系 一对一 多对多
一对一 不理解多对多: 一个老师会对应多个班级 1个班级也可能对应多个老师,多个班级对应多个老师就是多对多的关系有一个老师的表格 一个学生的表格 一个老师学生对应关系的中间表格多对多的实现是通过建立一个中间表的方式实现的:同理:基础程序:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Integer原创 2020-11-12 18:28:05 · 245 阅读 · 0 评论 -
flask_orm 之数据库查询:order,limit,offset和切片
惯例,先将重复的程序再抄一遍:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,Stringfrom sqlalchemy.orm import sessionmaker# 连接数据库# 地址HOSTNAME = '127.0.0.1'# 数据库 几栋DATABASE = 's原创 2020-11-13 11:53:37 · 654 阅读 · 0 评论 -
flask学习之数据库子查询
关于子查询,在前面的文章中也做过简略介绍:可以说子查询是先确定“父查询”中要查的条件再执行查询。比如要查询年龄最大的女性的信息,我们先查找所有女性中的最大年龄,再在父查询中通过这个最大年龄把这个人查出来在sqlalchemy中也是支持子查询的,比如现在要查找一个用户的用户名和该用户的邮箱地址数量,先要通过用户名定位到这个用户,再利用该结果在父查询中进行查询,也就是说经过了两次查询,先进行子查询,再把子查询的结果在父查询中利用一个查询如果想变为子查询,是通过subquery()方法实现的,变为子查询之原创 2020-11-13 17:22:08 · 342 阅读 · 0 评论 -
flask学习之数据库与外键
外键的其他相关内容可以参看本文:https://blog.youkuaiyun.com/LCY133/article/details/107688002外键:MySQL的外键约束(FOREIGN KEY)是表的一个特殊字段。对于两个具有关联关系的表而言,相关联字段中的主键所在表就是主表(父表),外键所在的表就是从表(子表)。要点:主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。创建表格:from sqlalchemy import creat原创 2020-11-11 11:17:51 · 492 阅读 · 0 评论 -
flask学习之flask-SQLALchemy
flask-SQLALchemy是对SQLAL车门有进行了一个简单的封装,使得我们在flask中使用sqlalchemy更加的简单,数据库的初始化不再是通过create_engine,而是通过dbdb的操作更简单,但是并没有相关的自动填充,这点比较费事通过代码解析:from flask import Flaskfrom flask_sqlalchemy import SQLAlchemy引入的内容相对较少,初始参数定义:参数定义的内容与上文的内容是一样的:HOSTNAME = '127.0原创 2020-11-13 19:31:47 · 949 阅读 · 0 评论 -
flask项目实战之1.入口文件的定义与入口文件的拆分
本文设计了flask项目的实战,其中的入口文件的定义与相关的拆分1.入口文件介绍入口文件内容,直接代码:from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyimport redisfrom flask_session import Sessionfrom flask_wtf import CSRFProtect# 定义appapp = Flask(__name__)# 定义config类class Config(原创 2020-11-19 23:12:33 · 833 阅读 · 0 评论 -
flask学习之蓝图 blueprint
在大的项目中,需要使用到的代码量是非常惊人的,所以,将代码拆分是非常有必要的,使用蓝图的方式进行拆分,是flask中一个便捷的方式,将不同功能分部到不同的页面上。蓝图代码定义:book.pyfrom flask import Blueprint, render_template# 蓝图的基本使用book_bp = Blueprint('book', __name__, url_prefix='/book', template_folder='logic', static_folder='lgco原创 2020-11-23 11:08:04 · 244 阅读 · 0 评论 -
flask学习之Flask-Script 通过命令行的方式操作flask
flask-script的作用是通过命令行的形式操作flask,例如通过命令跑一个开发版本的服务器,设置数据库,定时任务等等。我们需要把脚本命令代码放在一个叫做manage.py的文件中,然后在终端运行python manage.py hello命令,就可以看到输出hello了定义命令的三种方式添加参数到命令中flask_sqlalchemy_demo.py代码如下:(主要内容就是定义一个APP的)from flask import Flaskfrom flask_sqlalchemy impo原创 2020-11-14 17:07:20 · 532 阅读 · 0 评论 -
flask学习之flask-migrate 迁移数据库 (以及错误:Target database is not up to date的解决)
在实际的开发中,经常会发生数据库修改的行为,一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中,这时候如果有一个工具专门做这种事情,就显得非常有用了,而flask-migrate就是做这个事情的。flask-migrate是基于alembic进行的一个封装,并且继承到flask中,而所有的迁移操作其实都是alembic做的,他能跟踪模型的变化,并且将变化映射到数据库中。...原创 2020-12-11 11:47:49 · 3016 阅读 · 2 评论