python全栈
记录自己学习的过程
zaaaacki
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python全栈039-----输出字段
输出字段对于一个视图函数,你可以指定好一些字段用于返回。以后可以使用ORM模型或者自定义的模型的时候,他会自动的获取模型中的相应的字段,生成json数据,然后再返回给客户端。这其中需要导入flask_restful.marshal_with装饰器。并且需要写一个字典,来只是需要返回的字段,以及该字段的数据类型。from flask import Flaskfrom flask_restful import Api,Resource,fields,marshal_with #导入fields库,导原创 2020-11-17 01:08:21 · 301 阅读 · 0 评论 -
python全栈038-----flask-restful的一些简单使用
flask-restfulflask-Restful插件提供了类似WTForms来验证提交的数据是合法的包,叫做reqparse。add_argument可以指定这个字段的名字,这个字段的数据类型等。default:默认值。如果这个参数没有值,那么将使用这个参数指定的值。 required:是否必须。默认为False,如果设置为True,那么这个参数就必须提交上来。 type:这个参数的数据类型,如果指定,那么将使用指定的数据类型来强制转换提交上来的值。 choices:选项。提交上.原创 2020-11-16 16:37:43 · 181 阅读 · 0 评论 -
python全栈037-----restful-api插件
restful-api插件介绍Flask-Restful是一个专门用来写restfulapi的一个插件。使用太可以快速的集成restfulapi功能。在app的后台以及纯api的后台中,这个插件可以帮助我们节省很多时间。当然如果在普通的网站中,这个插件就显得有些鸡肋了,因为在普通的网页开发中,是需要去渲染HTML代码的,而Flask-Restful在每个请求中都是返回json格式的数据。安装Flask-Restful需要在Flask0.8以上的版本,在Python2.6或者Python3..原创 2020-11-16 13:18:13 · 100 阅读 · 0 评论 -
python全栈036-----restful-api规范
restful-api规范restfulapi适用于在前端与后端进行通信的一套规范。使用这个规范可以让前后端开发变得更加轻松。以下将讨论这套规范的一些设计细节。协议采用http或者https协议数据传输格式数据之间传输的格式应该都是用json,而不使用xml。url链接url链接中,不能有动词,只能有名词。并且对于一些名词,如果出现复数,那么应该在后面加s。http请求的方法GET:从服务器上获取资源 POST:爱在服务器上创建一个资源 PUT:在服务器上更新资源。.原创 2020-11-16 13:01:51 · 151 阅读 · 0 评论 -
python全栈035-----钩子函数
常用的钩子函数before_first_request:处理第一次请求之前执行。from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): print('这是首页 ') return '首页'@app.before_first_requestdef before_first_request(): print('这是请求之前第一个执行的函数') return '这是..原创 2020-11-15 14:24:15 · 251 阅读 · 0 评论 -
python全栈034-----flask上下文,current_app,g
flask上下文flask项目中有两个上下文,一个是应用上下文(app),另外一个是请求上下文(request)。请求上下文request和应用上下文current_app都是一个全局变量。flask有特殊的机制可以保证每次请求的数据都是隔离的,即A请求所产生的数据不会影响到B请求。所以可以直接导入request对象,也不会被一些脏数据影响了,并且不需要在每个函数中使用request的时候传入request对象。这两个上下文具体的实现方式和原理可以没必要详细了解。request:请求上下文上.原创 2020-11-14 23:48:39 · 498 阅读 · 0 评论 -
python全栈033-----session的使用,os模块,添加,调用,清空
session的使用session:session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,session是一个思路,一个概念,一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现。虽然实现不一样,但是他们的目的都是服务器为了方便存储数据的。session的出现,是为了解决cookie存储数据不安全的问题的。cookie和session结合使用:web开发发展至今,cookie和session的使用已经出现了原创 2020-11-14 15:44:26 · 483 阅读 · 0 评论 -
python全栈032-----cookie的基本使用
cookie的基本使用cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。原创 2020-11-09 17:41:30 · 128 阅读 · 0 评论 -
python全栈031-----文件上传,enctype,表单验证过滤文件,werkzeug库
文件上传基础代码from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return '首页'@app.route('/upload/',methods=['GET','POST'])def upload(): if request.method == 'GET': return render_template('upload.html')if __name__原创 2020-11-08 22:28:13 · 326 阅读 · 0 评论 -
python全栈030-----WTF渲染模版,常用验证器
WTF常用验证器这其实就是一个验证器我们可以ctrl+左键查看一下这些都是他的验证器 我们来用一下email这个验证器 首先我们先安装这个验证器pipinstallemail_validator原创 2020-11-08 15:55:09 · 255 阅读 · 0 评论 -
python全栈029-----WTForms表单验证
WTForms表单验证flask-WTF为了方便演示我们创建一个py文件from flask import Flask,request,render_templateapp = Flask(__name__)@app.route('/')def index(): return '首页'@app.route('/regist/',methods = ['GET','POST'])def regist(): if request.method == 'GET':原创 2020-11-07 19:14:00 · 426 阅读 · 2 评论 -
python全栈028-----flask-migrate,init_app(),不删除添加列,添加数据
Flask-migrate在实际的开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中。这时候如果有一个工具能专门做这种事情,就显得非常有用了,而flask-migrate就是做这个事情的。flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,而所有的迁移操作其实都是Alembic做的,他能跟踪模型的变化,并将变化映射到数据库中。使用前需要安装flask-migrate实际.原创 2020-11-07 18:16:54 · 717 阅读 · 0 评论 -
python全栈027-----Flask-Script,Manage,option装饰器
Flask-Scriptflask-Script的作用是可以通过命令行的形式来操作Flask。例如通过命令跑一个开发版本的服务器、设置数据库和定时任务等。新建manage.py文件,首先倒入库 我们把脚本命令代码放在一个叫做manage.py文件中,然后在终端运行pythonmanage.pyindex命令,就可以看到hellopython输出了from flask_script import Managerfrom flask_sqlalchemy_demo import app...原创 2020-11-07 00:58:37 · 384 阅读 · 2 评论 -
python全栈026-----Flask-SQLAlchemy插件
Flask-SQLAlchemy插件# 映射数据库app.config['SQLALCHEMY_DATABASE_URL'] = DB_URLdb = SQLAlchemy(app)我们先安装我们要用的库倒入库from flask import Flask from flask_sqlalchemy import SQLAlchemy 初始代码HOSTNAME原创 2020-11-06 18:07:01 · 284 阅读 · 2 评论 -
python全栈025-----高级查询和子查询
高级查询和子查询初始代码:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,DECIMAL,Boolean,Enum,DateTime,TEXT,ForeignKeyfrom sqlalchemy.orm import sessionmaker,relationship原创 2020-11-04 13:53:01 · 149 阅读 · 0 评论 -
python全栈024-----limit、offset和切片
limit、offset和切片limit:可以限制每次查询的时候只查询几条数据 offset:可以限制查找数据的时候过滤掉前面多少条 切片:可以对Query对象使用切片操作,来获取想要的数据。初始代码:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,DECIMAL,B原创 2020-11-04 01:04:33 · 390 阅读 · 0 评论 -
python全栈023-----排序
排序1.order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。2.在模型定义的时候指定默认排序:有些时候,不想每次在查询的时候都指定排序的方式,可以在定义模型的时候就制定排序的方式。3.正向排序和反向排序:默认情况是从小到大,从前到后排序的,如果想要反向排序,可以调用排序的字段的desc方法。例子:初始代码from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative原创 2020-11-04 00:36:10 · 476 阅读 · 0 评论 -
python全栈022-----多对多
多对多需要三个表首先倒入包from sqlalchemy import Table首先我们看一下这个Table的书写格式'''mytable = Table("mytable", metadata, Column('mytable_id', Integer, primary_key=True), Column('value', String(50)))'''然后我们创建中间表,来保存这两个表格的外键teacher_classes = Table( '原创 2020-11-03 22:18:38 · 165 阅读 · 0 评论 -
python全栈021-----一对一
一对一一对一用的非常非常少,几乎不用一对一其实就是一对多的特殊情况初始代码:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,DECIMAL,Boolean,Enum,DateTime,TEXT,ForeignKeyfrom sqlalchemy.orm import原创 2020-11-03 14:02:50 · 148 阅读 · 0 评论 -
python全栈020-----MVT
SQLAlchemy-ORM1.MVTMmodel模型 Vview 视图 Ttemplate模版客户端----》view---》model---》view---》template---》view---》客户端原创 2020-11-02 20:10:11 · 168 阅读 · 0 评论 -
python全栈019-----Flask数据库表关系---一对多
Flask数据库表关系表之间的关系存在的三种:一对一、一对多、多对多。而SQLAlchemy中的ORM也可以模拟这三种关系。因为一对一其实在SQLAlchemy中底层是通过一对多的方式模拟的一对多:初始代码:from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,DECIM原创 2020-11-01 14:23:32 · 987 阅读 · 0 评论 -
python全栈018-----外键约束
外键约束在MySQL中,外键可以让表之间的关系更加紧密。SQLAlchemy同样也支持外键,通过ForeignKey类来实现,并且可以指定表的外键约束外键约束有一下几项原创 2020-11-01 13:17:09 · 236 阅读 · 0 评论 -
python全栈017-----外键,外键的创建
外键假如说,我们现在有两个表格这两个表格有所关联吗?class_id是不是就对应着class_table表格中的id这就是外键关联,class_id与下面的id相关联,我们可以通过class_id中的数据去查询class_table表中id的数据 (表关联)外键的创建首先我们需要两张表使用外键进行关联...原创 2020-10-31 15:30:51 · 484 阅读 · 0 评论 -
python全栈016-----更改数据库引擎
更改数据库引擎在之前的章节中我们创建数据库时选择的引擎是innodb,但是现在我们通过代码创建的表他默认的引擎是这个我们应该怎么修改呢打开phpstudy,点击设置,然后点击文件位置,点击mysql进入到路径,然后打开my.ini,可以看到他默认的设置就是Mylsam我们把它修改外我们要使用的innodb即可然后重启一下之后创建的表格的引擎就都是InnoDB的了...原创 2020-10-31 14:52:48 · 136 阅读 · 0 评论 -
python全栈015-----SQLAlchemy过滤条件
过滤条件过滤是数据提取的一个重要的功能,以下对一些常用的过滤条件进行解释,并且这些过滤条件都是只能通过filter方法实现的数据库中的初始数据equalsquery.filter(User.name == 'ed')例子result = session.query(User).filter(User.title == 'title1').all()print(result)for i in result: print(i)输出:返回的是一个列表,所以我们遍历..原创 2020-10-31 14:44:03 · 1043 阅读 · 0 评论 -
python全栈014-----SQLAlchemy属性常用数据类型
SQLAlchemy属性常用数据类型初始文件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'# 数据库DATABA原创 2020-10-29 18:03:16 · 764 阅读 · 0 评论 -
python全栈013-----SQLAlchemy的增删改查
SQLAlchemy的增删改查初始代码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原创 2020-10-29 15:26:43 · 189 阅读 · 0 评论 -
python全栈012-----SQLAlchemy的添加数据session,commit
SQLAlchemy的增删改查初始文件from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String# 数据库的配置变量# 地址HOSTNAME = '127.0.0.1'# 数据库DATABASE = 'flask_demo'# 端口PORT = 3306# 用户名和密码原创 2020-10-29 15:23:43 · 3901 阅读 · 0 评论 -
python全栈011-----SQLAlchemy-ORM介绍,使用SQLAlchemy创建表
SQLAlchemy-ORM介绍ORM介绍随着项目越来越大,采用原生SQL的方式在代码中会出现大量的SQL语句,对项目的进展非常不利SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近似的SQL语句 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,很容易漏掉某些SQL语句的修改 写SQL时容易忽略web安全问题ORM: Object Relationship Mapping,对象关系映射,通过ORM我们可以通过类的方式去操作数据库,原创 2020-10-29 12:39:17 · 316 阅读 · 0 评论 -
python全栈010-----SQLAlchemy介绍和基本使用
SQLAlchemy介绍和基本使用数据库是一个网站的基础。Flask可以使用很多种数据库。比如MySQL,MongoDB,SQLite,PostgreSQL等。这里我们以MySQL为例进行讲解。而在Flask中,如果想要操作数据库,我们可以使用ORM来操作数据库,使用ORM操作数据库将变得非常简单。在讲解Flask中的数据库操作之前,先要安装这些模块mysql:如果是在windows上,到官网下载。如果是ubuntu,通过命令sudo apt-get install mysql-ser.原创 2020-10-28 14:52:30 · 251 阅读 · 0 评论 -
python全栈09-----SQlyog的安装使用
SQlyog的使用首先在phpstduy中启动MySQL然后点击新建,密码输入默认的root然后点击测试连接,如果正常,点击连接进入软件 然后创建新的数据库,基字符集选择utf8,数据库排序规则选择utf8_general_ci,选择之后就支持中文了创建表引擎选择InonDB,字符集选择utf8,核对选择utf8_general_ci然后我们往下看,创建一个列名id,数据类型位int 然后我们看到了一个主键是什么意思呢? 主键:是否唯一,不可重复 一般id这个数原创 2020-10-28 13:50:18 · 268 阅读 · 0 评论 -
python全栈08-----数据库的安装MySQL,MySQL的简介
数据库的安装我们可以百度搜索MySQL然后安装,但是这样很麻烦,而且会有很多坑 所以我们采用简单的一键式安装 我们去下载phpstudy这个软件 打开软件 点击环境,然后安装数据库工具点击首页,点击启动即可添加环境变量 找到我们安装的MySQL文件的位置,复制然后按照下面流程设置完环境变量这样我们就可以从cmd中启动mysql,如下...原创 2020-10-28 12:33:47 · 133 阅读 · 0 评论 -
python全栈07-----数据库的介绍
1.数据库的介绍数据储存以前是这样的记录传统记录数据的缺点不易保存 备份困难 查找不便现代化手段-----文件对于数据容量较大的数据,不能够很好的满足,而且性能较差 不宜扩展数据库持久化储存 读写速度极高 保证数据的有效性 对程序支持性非常好,容易扩展我们将来看到的是这个样子的实际上在网页上展示出来的是理解数据库数据行(记录) 数据列(字段) 数据表(数据行的集合) 数据库(数据表的集合)...原创 2020-10-27 17:26:13 · 143 阅读 · 0 评论 -
python全栈06-----基于调度方法的视图,蓝图
基于调度方法的视图Flask还为我们提供了另外⼀种类视图flask.views.MethodView,对每个HTTP⽅法执⾏不同的函数(映射到对应⽅法的⼩写的同名⽅法上) 就是定义请求服务器的方法(get,post等)我们定义一个LoginView类,继承MethodView方法from flask import Flask,views,render_templateapp = Flask(__name__)@app.route('/')def index(): retu原创 2020-10-24 14:14:15 · 250 阅读 · 0 评论 -
python全栈05-----标准类视图,标准类试图的应用
标准类视图之前我们接触的视图都是函数,所以⼀般简称视图函数。其实视图也可以基于 类来实现,类视图的好处是⽀持继承,但是类视图不能跟函数视图⼀样,写完类视图还需要通过app.add_url_rule(url_rule,view_func)来进⾏注册。 视图函数@app.route('/profile/')def profile(): return '个人中心'类视图函数:app.add_url_rule('/profile/',view_func=profile) view_f原创 2020-10-21 15:26:33 · 297 阅读 · 0 评论 -
python全栈05-----豆瓣案例(下)
豆瓣案例效果图这是我们点击更多进到的电影页面豆瓣案例(上)的代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{{url_for('static',filename = 'css/base.css') }}">原创 2020-10-21 12:14:32 · 223 阅读 · 0 评论 -
python全栈04-----豆瓣案例(上)
豆瓣案例效果图首先我们创建douban文件夹 再在douban文件夹中创建templates文件夹,放入我们的html模板 再在douban文件夹中创建static文件夹,放入我们的静态文件配置 在static文件夹中创建css文件夹,images文件夹,对我们的静态文件配置分类 在douban文件夹中创建douban.py文件from flask import Flask,render_templateapp = Flask(__name__)@app.route('/原创 2020-10-21 01:04:05 · 203 阅读 · 0 评论 -
python全栈04-----include和set语句,with(全局和局部),模板的继承,block
include语句include语句可以把一个模板引入到另外一个模板中,类似于把一个模板的代码copy到另外一个模板的指定位置{% include '要引入的html文件.html'%}主体内容{% include 'footer.html'%}例子:我们创建一个py文件from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')def index(): return r原创 2020-10-19 00:52:22 · 800 阅读 · 2 评论 -
python全栈03-----jinjia2模板过滤器,自定义模板过滤器,控制语句
jinjia2模板过滤器 过滤器是通过管道符号(|)进⾏使⽤的,例如:{{ name|length }},将返回name的⻓度。过滤器相当于是⼀个函数,把当前的变量传⼊到过滤器中,然后过滤器根据⾃⼰的功能,再返回相应的值,之后再将结果渲染到⻚⾯中。Jinja2中内置了许多过滤器,在这⾥可以看到所有的过滤器 abs(value):返回一个数值的绝对值...原创 2020-10-17 00:58:13 · 645 阅读 · 0 评论 -
python全栈02-----url_for,HTTP的请求方法
构造url(url_for)一般我们通过一个URL就可以执行到某个函数。 那么我们知道一个函数如何去获取这个URL呢 url_for函数可以帮我们实现这个功能 url_for()函数会接受两个及以上的参数,他接收函数名作为第一个参数 如果还出现其他参数,则会添加到URL的后面左右查询参数。 通过构建URL的方式而选择直接在代码中拼URL的原因有两点 1.将来如果修改了URL,但没有修改该URL对应的函数名,就不用到处去替换URL了。 2.url_for()函数会转义一些特殊字符和unco原创 2020-10-13 23:55:35 · 882 阅读 · 0 评论
分享