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. Flutter中SQLite数据库的使用

    同时支持android和ios 支持事务和批量操作 支持插入/查询/更新/删除操作 在iOS和Android上的后台线程中执行数据库操作 1.添加依赖 dependencies: ... sqflit ...

  2. 3、SpringBoot 集成Storm wordcount

    WordCountBolt public class WordCountBolt extends BaseBasicBolt { private Map<String,Integer> c ...

  3. 大佬是怎么思考设计MySQL优化方案的?

    在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. 一.优化的哲学 注:优化有风险,涉足需谨 ...

  4. 详解docker中容器devicemapper设备的挂载流程

    事故起因 版本说明:本文中docker版本主要基于1.10版本,操作系统为centos7.devicemapper在文中缩写为dm. 某个用户的容器启动不起来,启动时候一直报错.通过docker lo ...

  5. Python 框架化代码的学习

    1 def 1: 2 pass 3 4 def 2: 5 pass 6 7 def 3: 8 pass 从Python初学我们习惯的风格就是如上图,把函数方法直接放到全局来写,这的确是最简单易懂的方式 ...

  6. 【SSL Certificates】什么是数字证书(Certificates)?

    本文涉及的相关问题,如果你的问题或需求有与下面所述相似之处,请阅读本文 ssl certificate 什么是ssl certificates? SSL Certificates 是一种使用数字加密技 ...

  7. java基础--集合框架的认识

    一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.Link ...

  8. f-stack nginx多进程报错 primary worker process failed to initialize

    EAL: Detected 4 lcore(s)EAL: Detected 1 NUMA nodesEAL: Multi-process socket /var/run/dpdk/rte/mp_soc ...

  9. C# 指定程序打开指定文件

    Process process = new Process(); process.StartInfo.FileName = 指定程序exe文件路径: process.StartInfo.Argumen ...

  10. iptables命令使用详解

    iptables的主要功能是实现对网络数据包进出设备及转发的控制.当数据包需要进入设备.从设备中流出或者经该设备转发.路由时,都可以使用iptables进行控制. 环境 操作系统:CentOS7.3 ...