![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python flask 开发
python flask 开发
摸鱼小馆
这个作者很懒,什么都没留下…
展开
-
flask出现405
@bp.route('/setu/')前端给这个路由发送post请求有可能出现405@bp.route('/setu/',methods=['GET','POST'])这样子就不会出现405了原创 2021-03-07 22:26:47 · 1456 阅读 · 0 评论 -
2020-10-14
现在主流的Python web框架中,模板的表达式声明都大同小异,常见的有{{ something }}和{% something %}两类,而前者与Vue.js的语法冲突,导致在运行Python(例如Flask)时,Vue语法被Python解析触发报错。对于Flask,解决该问题的方式最简单的就是在Vue实例的DOM外,通过声明raw,表示其中的内容不由flask转义即可解决冲突:{% raw %}<div>{{vue}}</div>{% endraw %}.转载 2020-10-14 13:07:54 · 60 阅读 · 0 评论 -
MySQL插入emoji表情错误的解决方案,Incorrect ‘\xF0\x9F\x98\x84
第一步 修改mysql的配置文件my.conf[client]# 客户端来源数据的默认字符集default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSE# 服务端默认字符集character-set-server=utf8mb4# 连接层默认字符集collation-server=utf8mb4_unicode_ciinit_connect=’SET NAMES utf8mb4'[mysql原创 2020-09-27 11:59:45 · 340 阅读 · 0 评论 -
NoneType 类型 之类的错误
我再用flask进行开发的时候使用 request.get_json()遇到了nonetype错误我的原因是 axios 首先进行了一次数据传输 button 按钮又进行了一次提交表单第一次axios提交过数据以后 get-json()get不到button提交的表单数据所以就报了 NoneType错误...原创 2020-09-27 10:49:32 · 579 阅读 · 0 评论 -
Flask jinja2模板继承
为什么需要模版继承:模版继承可以把一些公用的代码单独抽取出来放到一个父模板中。以后子模板直接继承就可以使用了。这样可以重复性的代码,并且以后修改起来也比较方便。模版继承语法:使用extends语句,来指明继承的父模板。父模板的路径,也是相对于templates文件夹下的绝对路径。示例代码如下:{% extends "base.html" %}。block语法:一般在父模版中,定义一些公共的代码。子模板可能要根据具体的需求实现不同的代码。这时候父模版就应该有能力提供一个接口,让父模板来实现。从而实原创 2020-06-06 19:52:30 · 264 阅读 · 0 评论 -
Flask jinja2模板加载静态文件
静态文件:加载静态文件使用的是url_for函数。然后第一个参数需要为static,第二个参数需要为一个关键字参数filename='路径'。示例:html {{ url_for("static",filename='xxx') }}路径查找,要以当前项目的static目录作为根目录。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>捡原创 2020-06-06 19:03:46 · 882 阅读 · 0 评论 -
Flask jinja2模板中 set与with语句,在模板中定义变量
set语句:在模版中,可以使用set语句来定义变量。示例如下:{% set username='捡猫课堂' %}<p>用户名:{{ username }}</p>一旦定义了这个变量,那么在后面的代码中,都可以使用这个变量,就类似于Python的变量定义是一样的。with语句:with语句定义的变量,只能在with语句块中使用,超过了这个代码块,就不能再使用了。示例代码如下:{% with classroom = '捡猫班' %}<p>班级:{{ clas原创 2020-06-06 18:52:47 · 1333 阅读 · 0 评论 -
Flask jinja2模板 include 标签
include标签:这个标签相当于是直接将指定的模版中的代码复制粘贴到当前位置。include标签,如果想要使用父模版中的变量,直接用就可以了,不需要使用with context。include的路径,也是跟import一样,直接从templates根目录下去找,不要以相对路径去找。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原创 2020-06-06 18:48:09 · 713 阅读 · 0 评论 -
Flask jinja2模板 宏的使用
宏:模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。使用宏的时候,参数可以为默认值。相关示例代码如下:定义宏:{% macro input(name, value='', type='text') %}<input type="{{ type }}" name="{{ name }}" value="{{value }}">{% endmacro %}使用宏:<p>原创 2020-06-06 18:31:35 · 224 阅读 · 0 评论 -
Flask jinja2模板for循环
for循环语句笔记:在jinja2中的for循环,跟python中的for循环基本上是一模一样的。也是for...in...的形式。并且也可以遍历所有的序列以及迭代器。但是唯一不同的是,jinja2中的for循环没有break和continue语句。from flask import Flask,render_templateapp = Flask(__name__)app.config['TEMPLATES_AUTO_RELOAD'] = True@app.route('/')def in原创 2020-06-06 18:17:25 · 6923 阅读 · 1 评论 -
Flask jinja2模板中if语句使用详解
if条件判断语句:if条件判断语句必须放在{% if statement %}中间,并且还必须有结束的标签{% endif %}。和python中的类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来进行逻辑合并操作。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>捡猫&l原创 2020-06-06 15:37:25 · 8584 阅读 · 0 评论 -
Flask jinja2模板中 过滤器 详解
什么是过滤器,语法是什么:有时候我们想要在模版中对一些变量进行处理,那么就必须需要类似于Python中的函数一样,可以将这个值传到函数中,然后做一些操作。在模版中,过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。基本语法:{{ variable|过滤器名字 }}。使用管道符号|进行组合。常用过滤器:default过滤器:使用方式{{ value|default('默认值') }}。如果value这个key不存在,那么就会使原创 2020-06-04 11:26:43 · 557 阅读 · 0 评论 -
Flask 模板中使用url_for
模版中的url_for跟我们后台视图函数中的url_for使用起来基本是一模一样的。也是传递视图函数的名字,也可以传递参数。使用的时候,需要在url_for左右两边加上一个{{ url_for('func') }}from flask import Flask,render_template,url_forapp = Flask(__name__)@app.route('/')def index(): return render_template('index.html')@ap原创 2020-06-04 11:07:36 · 1400 阅读 · 0 评论 -
Flask 模板传参及其技巧
在使用render_template渲染模版的时候,可以传递关键字参数。以后直接在模版中使用就可以了。如果你的参数过多,那么可以将所有的参数放到一个字典中,然后在传这个字典参数的时候,使用两个星号,将字典打散成关键参数。from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')def hello_world(): context = { 'username':'捡猫', .原创 2020-06-04 10:56:49 · 592 阅读 · 0 评论 -
Flask 模板渲染路径
在渲染模版的时候,默认会从项目根目录下的templates目录下查找模版。如果不想把模版文件放在templates目录下,那么可以在Flask初始化的时候指定template_folder来指定模版的路径。from flask import Flask,render_templateapp = Flask(__name__,template_folder='C:/templates')#DTL:Django Tmplate Languate@app.route('/')def hello.原创 2020-06-04 10:43:18 · 4334 阅读 · 1 评论 -
Flask 视图函数返回值
视图函数中可以返回哪些值:可以返回字符串:返回的字符串其实底层将这个字符串包装成了一个Response对象。可以返回元组:元组的形式是(响应体,状态码,头部信息),也不一定三个都要写,写两个也是可以的。返回的元组,其实在底层也是包装成了一个Response对象。可以返回Response及其子类。实现一个自定义的Response对象:继承自Response类。实现方法force_type(cls,rv,environ=None)。指定app.response_class为你自定义的Resp原创 2020-06-04 10:34:41 · 585 阅读 · 0 评论 -
Flask 重定向
重定向笔记:重定向分为永久性重定向和暂时性重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。永久性重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问,最经典的就是京东网站,你输入www.jingdong.com的时候,会被重定向到www.jd.com,因为jingdong.com这个网址已经被废弃了,被改成jd.com,所以这种情况下应该用永久重定向原创 2020-06-04 10:13:23 · 458 阅读 · 0 评论 -
在局域网中让其他电脑访问我的网站
在局域网中让其他电脑访问我的网站:如果想在同一个局域网下的其他电脑访问自己电脑上的Flask网站,那么可以设置host='0.0.0.0'才能访问得到。指定端口号:Flask项目,默认使用5000端口。如果想更换端口,那么可以设置port=9000。...原创 2020-06-03 19:54:48 · 946 阅读 · 0 评论 -
Flask 自定义URL转换器
自定义URL转换器:自定义URL转换器的方式:实现一个类,继承自BaseConverter。在自定义的类中,重写regex,也就是这个变量的正则表达式。将自定义的类,映射到app.url_map.converters上。比如:app.url_map.converters['tel'] = TelephoneConverterto_python的作用:这个方法的返回值,将会传递到view函数中作为参数。to_url的作用:这个方法的返回值,将会在调用url_for函数的时候生成符合要求转载 2020-06-03 19:41:30 · 121 阅读 · 0 评论 -
Flask 中 url_for的使用
url_for笔记:url_for的基本使用:url_for第一个参数,应该是视图函数的名字的字符串。后面的参数就是传递给url。如果传递的参数之前在url中已经定义了,那么这个参数就会被当成path的形式给url。如果这个参数之前没有在url中定义,那么将变成查询字符串的形式放到url中。@app.route('/post/list/<page>/')def my_list(page): return 'my list'print(url_for('my_list',p原创 2020-06-03 17:30:52 · 662 阅读 · 0 评论 -
Flask中URL与视图函数的映射
URL与视图函数的映射:传递参数:传递参数的语法是:/<参数名>/。然后在视图函数中,也要定义同名的参数。参数的数据类型:如果没有指定具体的数据类型,那么默认就是使用string数据类型。int数据类型只能传递int类型。float数据类型只能传递float类型。path数据类型和string有点类似,都是可以接收任意的字符串,但是path可以接收路径,也就是说可以包含斜杠。uuid数据类型只能接收符合uuid的字符串。uuid是一个全宇宙都唯一的字符串,一般可以用来作为表的主原创 2020-06-03 17:14:54 · 194 阅读 · 0 评论 -
flask config两种配置方式
config笔记:使用app.config.from_object的方式加载配置文件:导入import config。使用app.config.from_object(config)。使用app.config.from_pyfile的方式加载配置文件:这种方式不需要import,直接使用app.config.from_pyfile('config.py')就可以了。注意这个地方,必须要写文件的全名,后缀名不能少。这种方式,加载配置文件,不局限于只能使用py文件,普通的txt文件同样也适合原创 2020-06-03 16:41:22 · 981 阅读 · 0 评论 -
flask中dubug模式
DEBUG模式为什么需要开启 DEBUG模式:1如果开启了DEBUG模式,那么在代码中如果抛出了异常,在浏览器的页面中可以看到具体的错误信息,以及具体的错误代码位置。方便开发者调试。2.如果开启了 DEBUG模式,那么以后在 Python代码中修改了任何代码,只要按ctrl+sf1ask就会自动的重新加载整个网站。不需要手动点击重新运行。配置DEBU模式的四种方式1.在app.run()中传递一个参数 debug=True就可以开启DEBUG模式。2.给app. deubg=True也可以开原创 2020-06-02 19:21:45 · 134 阅读 · 0 评论 -
url详解
url详解URL是 Uniform Resource Locator的简写,统一资源定位符。一个URL由以下几部分组成?scheme://host:port/path/?query-string=xxx#anchorscheme:代表的是访问的协议,一般为http或者https以及ftp等。host:主机名,域名,比如www.baidu.comport:端口号。当你访问一个网站的时候,浏览器默认使用80端口。path:查找路径。比如:www. jianshu.com/ trending/原创 2020-06-03 16:30:18 · 320 阅读 · 0 评论