随笔分类 - Flask笔记
Flask学习笔记
摘要:RESTful是用于前台和后端进行通信的一种规范或者说一种风格,采用的是HTTP和HTTPS协议,数据传输的格式使用的都是JSON,而不是XML。通常,RESTful的URL中只有名词,没有动词,而且名词在复数的情况就应该使用其复数的形式。网上有专门讲解RESTful的详细教程,本文只是Flask中
阅读全文
摘要:Flask中有内置的一些信号,也可以通过三方库blinker自定义信号,其实Flask内置的信号也是优先使用的blinker库,如果没有安装blinker才会使用自定义的信号机制。可以通过点击任意导入的内置信号查看源码,同时也可以看到具体有哪些内置的信号。 一般安装Flask时会自动安装blinke
阅读全文
摘要:线程隔离Thread Local: 如果一个对象具有线程隔离的特性,就可以称之为“Thread Local”,线程隔离是指该对象在不同的线程中都是独立的,在一个线程中对该对象的操作不会影响另一个线程对该对象操作,比如在线程A中修改了该对象的某个属性值,但是在线程B中该对象的这个属性值并没有被修改。
阅读全文
摘要:session与cookie: cookie是一项浏览器的技术,而不是服务器的技术,服务器端是无法直接操作cookie的,只能通过返回Response响应告诉浏览器怎么操作cookie。而session则更像是一种解决方案,一种在服务器端存储授权信息的解决方案,不同的语言,不同的框架对于sessio
阅读全文
摘要:在网站中,HTTP请求是无状态的:第一次请求成功后,第二次请求时服务器依然不知道这次请求的所属用户是谁。为了解决这个问题,在第一次请求成功后,服务器会生成并返回对应的cookie信息给浏览器,而浏览器在下一次请求同一个网站的时候就会自动(不需要再输入用户名和密码了)将其cookie信息附在请求上,此
阅读全文
摘要:文件上传 enctype:在HTML中的form表单中form标签默认是`enctype="application/x-www-form-urlencoded"`,在文件上传时需要设置为`enctype="multipart/form-data"`,不然文件上传不会成功。 后台获取上传的文件:fil
阅读全文
摘要:蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint。 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可以更加方便的开发和维护 导入Blueprint:from flask import Blueprin
阅读全文
摘要:当一个url请求进入后台时,一般有两种方式来进行处理:视图函数和类视图。视图函数直接使用一个函数来进行处理并返回数据给浏览器,类视图则是使用类来进行处理并返回的,所以当需要进行的处理比较简单,则可以考虑使用前者,处理比较复杂就考虑使用后者,但是最终还是需要看使用环境和需求而定。 视图函数: 函数注册
阅读全文
摘要:URL反转:反转是指通过视图函数名称得到其对应的URL(有反转也就有正转,即通过URL得到视图函数返回的内容,也就是我们平时的访问网页了),需要“url_for(endpoint, **values)”,第一个参数endpoint如果没有指定则使用视图函数名称字符串,第二个参数是需要传入URL的参数
阅读全文
摘要:返回HTML模板:使用“from flask import render_template”,在函数中传入相对于文件夹“templates”HTML模板路径名称字符串即可(默认模板路径),flask会自动到项目根目录的“templates”文件夹(创建flask项目时,PyCharm会自动创建两个空
阅读全文
摘要:钩子函数,即hook函数,定义钩子函数时使用对应的装饰器即可。钩子函数的作用可以理解为在正常代码的某个特定节点插入定义好的钩子函数。 常用的钩子函数: before_first_request:在项目部署好后,服务器处理第一次请求之前执行。 before_request:在每次请求之前执行,即在请求
阅读全文
摘要:数据库迁移是将代码中模型类(即表)的修改同步到数据库中, sqlalchemy的模型类一旦使用create_all()映射到数据库中后,对这个模型类的修改(例如添加了一个新的字段)就不会再映射到数据库中了,这时候想要在数据库中得到新的表就需要删掉重新映射一次,可是这样做的话原先表中的数据也没了,这肯
阅读全文
摘要:Python中使用sqlalchemy插件可以实现ORM(Object Relationship Mapping,模型关系映射)框架,而Flask中的flask-sqlalchemy其实就是在sqlalchemy外进行了一层封装,使得在flask中使用起来更加方便,当然sqlalchemy的原有的方
阅读全文
摘要:URL传参: 良好的URL:视图函数对应的url以/结尾是一种良好url,因为用户在访问的时候无论他有没有加上最后这个斜杠,都是能访问到的,相反,视图函数的url没有以/结尾,用户访问的时候却加上了这个/,那么用户是访问不到这个网页的。 使用path形式传参:使用尖括号,如“<value>”将参数“
阅读全文
摘要:如果设置项比较少的话可以使用“app.config['param_name']=value”的形式直接使用,如果需要设置的参数比较多的话,可以单独新建一个配置文件用来存放配置信息(配置文件中的参数需大写),且需要将配置文件中的内容导入到app.config中。 导入配置文件的两种方式: from_o
阅读全文
摘要:一、Python虚拟环境: 安装Flask前,可以创建一个虚拟环境专门用于运行Flask程序,Python虚拟环境的创建可以参考 https://www.cnblogs.com/guyuyun/p/16464565.html 二、Flask安装 activate:激活并进入虚拟环境(参考步骤一);
阅读全文
摘要:Python的Jinja2模板,其实就是在HTML文档中使用控制语句和表达语句替换HTML文档中的变量来控制HTML的显示格式,Python的Jinja2模板可以更加灵活和方便的控制HTML的显示,而且大大地减少了编程人员的工作量。 本文是作者的学习笔记,并不全面,感兴趣的朋友可以参考http://
阅读全文