1.Flask中的HTTPResponse,Redirect, render

#导入render_template和redirect
from flask import Flask,render_template,redirect app = Flask(__name__) #flask实例化 @app.route('/login') #路由
def login1(): #视图函数
return 'Hello World!!' #回复字符串 @app.route('/login')
def login2():
return render_template('login.html') #返回一个html页面 @app.route('/login')
def login3():
return redirect('/login') #重定向路径 if __name__ == '__main__':
app.run(debug = True) #启动flask

  1.return     '字符串'     #直接回复字符串

  2.return   render_template('login.html')    #返回html页面

  3.return   redirect('/login')     #重定向路径

      重定向状态码---302 

  • flask中html页面写在一个新建的templates文件夹中

2.flask的封装(特殊类型的返回值)

  2.1.send_file       return send_file('文件路径')  #打开并返回文件内容,自动识别文件类型,在响应头中加入content-type:文件格式+Content-Type:文件大小(byte)

#导入send_file
from flask import Flask,send_file,jsonify
app=Flask(__name__) @app.route('/')
def login3():
return send_file('01.py')# send_file('文件的路由') 文件可以是文本,图片,视频等 if __name__ == '__main__':
app.run(debug = True) #启动flask
  • 在响应头中加入content-type:文件格式+Content-Type:文件大小(byte)

  2.2.jsonify()  #返回一个客户端可以识别的json格式字符串,会在响应头加入Content-Type:application/json

import json
#导入send_file和jsonify
from flask import Flask,send_file,jsonify
app=Flask(__name__) #flask封装的jsonify
@app.route('/get_jsonify')
def get_jsonify():
return jsonify({'msg':'请求成功','code':0}) @app.route('/get_json')
def get_json():
return json.dumps({'msg':'请求成功','code':0}) if __name__ == '__main__':
app.run(debug = True) #启动flask
  • 访问get_jsonify,content-type是application/json,访问get_json,content-type是文本信息

 2.2.1. methods的请求方法      methods=['POST','GET']

      如果要允许GET请求之外的请求,必须加上methons方法,如@app.route('/get_jsonify',methods=['POST','GET'])

2.2.2$.post的用法     

     $.post就是$.ajax的post请求的简写 #post()需要四个参数,分别1.需要访问的页面的url,2.往这个地址发送的数据,3.回调函数4.数据格式为json
      如: $.post('http://127.0.0.1:5000/get_jsonify',{},function (data) {console.log(data);},'json')
#后端py的代码
import json
#导入send_file和jsonify
from flask import Flask, send_file, jsonify, render_template app=Flask(__name__) #flask封装的send_file
@app.route('/get_file')
def get_file():
return send_file('01.py')# send_file('文件的路由') 文件可以是文本,图片,视频等 #flask封装的jsonify
@app.route('/get_jsonify',methods=['POST','GET']) #如果要允许GET请求之外的请求,这里必须加上methons方法
def get_jsonify():
return jsonify({'msg':'请求成功','code':0}) @app.route('/get_json')
def get_json():
return json.dumps({'msg':'请求成功','code':0}) @app.route('/login')
def login():
return render_template('login.html') if __name__ == '__main__':
app.run(debug = True) #启动flask 
//#login.html页面的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
我是login.html页面
</body>
<script type="application/javascript" src="/static/jquery-3.4.0.min.js"></script>
<script type="application/javascript">
$.post('http://127.0.0.1:5000/get_jsonify',{},function (data) {
console.log(data);
document.getElementById('msg').innerText=data.msg; //要得到msg的信息,必须是用jsonify返回的object才能拿到
alert(data.msg);
},'json') ; //# $.post就是$.ajax的post请求的简写 #post(四个参数,1.url2.往这个地址发送的数据3.回调函数4.数据格式为json) </script>
</html>

flask基础--第二篇的更多相关文章

  1. python基础-第二篇-基本数据类型

    一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...

  2. javaSE基础第二篇

    1.JDK下载: www.oracle.com   2.JAVA_HOME bin目录:存放可执行文件.exe 把可能变的路径写入JAVA_HOME path=......;%JAVA_HOME%%; ...

  3. 【SSH三大框架】Hibernate基础第二篇:编写HibernateUtil工具类优化性能

    相对于上一篇中的代码编写HibernateUtil类以提高程序的执行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domai ...

  4. java基础第二篇

    3.选择结构 a.if: 格式一: if(表达式1){ 表达式1为真才执行 } 格式二: if(表达式1){ 表达式1为真才执行 }else{ 表达式1位假才执行 } 格式三:判断工龄的范围,判断成绩 ...

  5. Spring Data JPA 基础第二篇

    主要调用工具类JpaUtils类 package cn.itcast.utils;import javax.persistence.EntityManager;import javax.persist ...

  6. Python基础第二篇

    一.三元运算 if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b" ...

  7. Python【基础第二篇】

    元组 元组的元素不可修改 元组的元素的元素可修改 字典 Python主文件判断 name == main python中一切事物都是对象 对象是基于类创建的 对象具有的所有功能都是从类里找的 int内 ...

  8. Java笔记(基础第二篇)

    声明数组 数组元素类型 数组名字[]; 数组元素类型[] 数组名字; 分配内存空间 数组名字 = new 数组元素类型[数组元素的个数] 其中使用new关键字为数组分配内存时,数组中各个元素的初始化值 ...

  9. #Java学习之路——基础阶段二(第二篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

随机推荐

  1. 用keytool制作证书并在tomcat配置https服务(二 )

    用keytool制作证书并在tomcat配置https服务(一) 双向认证: 我们上边生成了服务端证书,并发送给客户端进行了验证. 双向认证是双向的,因此还差客户端证书. 1.为方便导入浏览器,生成p ...

  2. 多线程校验url的种种。。。

    东西不经常看就容易忘,这两天抽空写了一个补丁库url验证工具,挺曲折的,记录一下需求大概流程如下:转换补丁库为xml,解析xml得到所有url,多线程校验url.就不到100行有效代码,断断续续写了三 ...

  3. 软件包管理(rpm,yum)

    软件包管理相关软件: 软件包管理器的核心功能: .制作软件包 .安装,卸载,升级,查询,效验 Redhat ,SUSE : RPM Debian :dpt 依赖关系; 前端工具;yum ,apt-ge ...

  4. mysqli_query($conn, $sql)的返回值类型

    SQL语句的分类: DDL: Data Define Language,数据定义语言——定义列 CREATE / DROP / ALTER / TRUNCATE DML: Data Manipulat ...

  5. CMS收集器产生的问题和解决方案

    垃圾收集器长时间停顿,表现在 Web 页面上可能是页面响应码 500 之类的服务器错误问题,如果是个支付过程可能会导致支付失败,将造成公司的直接经济损失,程序员要尽量避免或者说减少此类情况发生. 提升 ...

  6. THUSCH 2017 大魔法师(矩阵乘法+线段树)

    题意 https://loj.ac/problem/2980 思路 区间修改考虑用线段树维护.由于一段区间的 \(A,B,C\) 可以表示成由原来的 \(A,B,C\) 乘上带上系数再加上某一个某个常 ...

  7. django 开发笔记1

    1.布置到云服务器 使用 python3 manage.py runserver提示错误,需要将settings.py 中 ALLOWED_HOSTS 字典中加入 localhost;0.0.0.0; ...

  8. Date日期类型的绑定

    自定义类型的绑定 springmvc没有提供默认的对日期类型的绑定,需要自定义日期类型的绑定 第一张图是po类中日期属性,第二张图是页面中日期属性的内容,第三张图片是访问出现400错误 因为日期的格式 ...

  9. 承接AR摄像头识别外包 AR图像识别 AR识别图像 AR识别应用外包

    增强现实简称AR,是一种实时计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并实现互动. 这里千万别和VR虚拟现实混了.简单说就是VR看到的场景都是假的, ...

  10. 蚂蚁风险大脑亮相ATEC城市峰会:为数字经济时代做好“安全守护”

    2019年1月4日,以“数字金融新原力(The New Force of Digital Finance)”为主题的蚂蚁金服ATEC城市峰会在上海隆重举行.大会聚焦金融数字化转型,分享新技术的发展趋势 ...