flask基础--第二篇
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基础--第二篇的更多相关文章
- python基础-第二篇-基本数据类型
一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...
- javaSE基础第二篇
1.JDK下载: www.oracle.com 2.JAVA_HOME bin目录:存放可执行文件.exe 把可能变的路径写入JAVA_HOME path=......;%JAVA_HOME%%; ...
- 【SSH三大框架】Hibernate基础第二篇:编写HibernateUtil工具类优化性能
相对于上一篇中的代码编写HibernateUtil类以提高程序的执行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domai ...
- java基础第二篇
3.选择结构 a.if: 格式一: if(表达式1){ 表达式1为真才执行 } 格式二: if(表达式1){ 表达式1为真才执行 }else{ 表达式1位假才执行 } 格式三:判断工龄的范围,判断成绩 ...
- Spring Data JPA 基础第二篇
主要调用工具类JpaUtils类 package cn.itcast.utils;import javax.persistence.EntityManager;import javax.persist ...
- Python基础第二篇
一.三元运算 if True: name='a' else: name='b' #上面的代码用三元运算表示: name="a" if True else "b" ...
- Python【基础第二篇】
元组 元组的元素不可修改 元组的元素的元素可修改 字典 Python主文件判断 name == main python中一切事物都是对象 对象是基于类创建的 对象具有的所有功能都是从类里找的 int内 ...
- Java笔记(基础第二篇)
声明数组 数组元素类型 数组名字[]; 数组元素类型[] 数组名字; 分配内存空间 数组名字 = new 数组元素类型[数组元素的个数] 其中使用new关键字为数组分配内存时,数组中各个元素的初始化值 ...
- #Java学习之路——基础阶段二(第二篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
随机推荐
- FairyGUI TextField
记录一个在使用FairyGUI的TextField时遇到的坑. TextField有一个文本模板功能,可以实现类似占位符的功能,如:{ number = 0 },然后我们可以在脚本中修改number的 ...
- Angular 中的数据交互(get jsonp post)
Angular get 请求数据 Angular5.x 以后 get.post 和和服务器交互使用的是 HttpClientModule 模块. import {HttpClientModule} f ...
- 02_计算机网络的OSI七层(应表会传网数物)
七层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 五层: 应用层 传输层 网络层 数据链路层 物理层 四层: 应用层 传输层 网络层 数据接口层 一.物理层(Physical Lay ...
- orm 扩展
"""ORM小练习 如何在一个Python脚本或文件中 加载Django项目的配置和变量信息""" import os if __name_ ...
- ES6中的类和继承
class的写法及继承 JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子 function Point(x, y) { this.x = x; this. ...
- vue3.0使用axios报错问题记录
vue-cli3.0使用axios的时候出现错误,记录一下 报错信息: Uncaught TypeError: Cannot set property $axios of #<Vue> w ...
- OpenStack入门科普
看完OpenStack入门科普,看这一篇就够啦!这篇文章,做些记录. 一.OpenStack简介:OpenStack就是为了云计算服务的.简单来说,它是一个操作系统,一套软件,一套IaaS软件. 1. ...
- PHP——laravel之DB类->查询
DB类之查询: 满足条件的全部获取:DB::table("表名")->where("name",">","1" ...
- Python绘制温度变化曲线
导入必要的第三方库 from requests import get import matplotlib.pyplot as plt /usr/lib/python3/dist-packages/ma ...
- selenium-xpath练习