Flask模板渲染与Get和Post请求详细介绍

目录
  • 模板渲染
  • GET和POST请求

模板渲染

所谓模板渲染就是让flask渲染一个html文档,比如你有一个html文件,想要在网站上加载出来,你就要渲染它。

首先把这个文件,叫做模板渲染.html,放在templates文件夹下面,

然后代码中,导入render_template

from flask import Flask,render_template

另外也可以修改模板文件的渲染路径,使用template_folder来修改

app = Flask(__name__,template_folder='../fdf')

这里我们不修改。

模板渲染.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板渲染</title>
</head>
<body>
<p>你好</p>
<h3>How are you</h3>
</body>
</html>

模板渲染.py:

from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
    return render_template('模板渲染.html')
if __name__ == '__main__':
    app.run()

运行这个flask项目,在根路径下/,执行对应的视图函数,渲染对应的html文件,显示如下:

GET和POST请求

在设置路由的时候,可以设置访问url的时候,接受的请求方式。

GET请求表示浏览器需要get某一个文件,服务器就把这个url对应的资源发给浏览器,默认情况下,我们输入url地址,就是在使用GET请求的方式请求资源。比如:

@app.route('/',methods=["GET"])
def index():
    return render_template('模板渲染.html')

methods=["GET"]限定访问方式,不写,默认就是GET方式。

表示在访问根路径/时,只接受get方式的请求,那我们输入url,按回车就是get方式,是可以访问的。

如果修改成:@app.route('/',methods=["POST"])

当我们点击这个链接后:

就会发现:

这就是因为我们限制了根路径/的访问只能用POST,当然也可以修改为GET,POST都可以的形式

@app.route('/',methods=["GET","POST"])

POST请求,表示的是我现在不是要获取某个资源,而是我有数据需要提交给服务器,让服务器来处理。

首先,我们的html页面为,这里有一个表单,需要我们填写数据,然后我们把数据交给服务器来处理,设置表单的action="http://localhost:5000/datahandle",也就意味着数据提交到/datahandle这个页面来处理

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>post请求</title>
</head>
<body>
    <form action = "http://localhost:5000/datahandle" method = "post">
         <table>
            <tr>
                <td>Name</td>
                <td><input type ="text" name ="username"></td>
            </tr>
            <tr>
                <td>Password</td>
                <td><input type ="password" name ="password"></td>
            </tr>
            <tr>
                <td><input type = "submit"></td>
            </tr>
        </table>
    </form>
</form>
</body>
</html>

然后是py文件,

from flask import Flask,render_template,request
app = Flask(__name__)
@app.route('/')
def index():
    return render_template('test.html')
#post数据到这个页面来处理,直接输入url是get方式访问,访问不了,这里限定了只能用POST方式访问
@app.route('/datahandle',methods=["POST"])
def handle():
    #获取提交到的数据
    name = request.form['username']
    pwd  = request.form['password']
    return f'name: {name}, password: {pwd}'
if __name__ == '__main__':
    app.run()

进入到根路径后会渲染模板文件test.html,然后在表单中输入name,password后,提交给/datahandle页面来处理,它对应的视图函数handle()处理数据。但是这里涉及到如何拿到表单中的数据,需要使用request

from flask import Flask,render_template,request
name = request.form['username']
pwd  = request.form['password']

实际上,在form表单中输入的数据都被flask以字典的形式存储起来了,使用print(request.form)可以查看

表单中输入以下数据:提交,

在控制台中输出ImmutableMultiDict([('username', '123'), ('password', '456')])

键值对username='123',password = '456'

然后使用request.form['username']拿到key对应的value,或者使用request.form.get('username')一样可以拿到数据。

提交后页面跳转到了/datahandle中,处理完的数据返回出来:

成功的拿到了post方式提交的数据。

到此这篇关于Flask模板渲染与Get和Post请求详细介绍的文章就介绍到这了,更多相关Flask模板渲染内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 发送get请求接口详解

    简介 如果想用python做接口测试,我们首先有不得不了解和学习的模块.它就是第三方模块:Requests. 虽然Python内置的urllib模块,用于访问网络资源.但是,它用起来比较麻烦,而且,缺少很多实用的高级功能.更好的方案是使用 requests.它是一个Python第三方库,处理URL资源特别方便.查看其中文官网:http://cn.python-requests.org/zh_CN/latest/index.html英文官网:http://www.python-requests.o

  • Python post请求实现代码实例

    使用post请求登陆小极客网 1.获取登陆接口,及用户名和密码参数 进入小极客网,先注册个账户,修改用户名和密码,然后点击登陆,打开debug调试-进入到network下 输入用户名和密码,点击登陆 如下图:获得登陆接口:http://www.xiaojike.cn/sign_in/ 用户名变量为:username 密码变量为:password 2.写代码,将用户名和密码以post方式发送,并且打印返回的状态码和请求的url以及请求头 # --*-- coding:utf-8 --*-- imp

  • Python大数据之网络爬虫的post请求、get请求区别实例分析

    本文实例讲述了Python大数据之网络爬虫的post请求.get请求区别.分享给大家供大家参考,具体如下: 在JetBrains PyCharm 2016.3软件中编写代码前,需要指定python和编码方式: #!user/bin/python 编码方式 :#coding=utf-8 或者 #-*-coding:utf-8-*- post请求: #导入工具,内置的库 import urllib import urllib2 #加一个\可以换行 #response = \ #urllib2.url

  • Python接口测试get请求过程详解

    python 做借口测试用到的是requests模块,首先要导入requests库,pip install requests 1.get直接请求方式 以豆瓣网为例: url = 'https://read.douban.com/' respose = requests.get(url=url) # status_code 为返回的状态码 print(respose.status_code) # text为返回的数据 print(respose.text) 请求结果:返回状态码为200,表明请求的

  • Flask框架模板渲染操作简单示例

    本文实例讲述了Flask框架模板渲染操作.分享给大家供大家参考,具体如下: from flask import render_template from flask import Flask from flask import Markup from flask import abort, redirect app = Flask(__name__) @app.route('/') def hello_site(): return "welcome my site!!!!!" #返回给

  • Flask模板渲染与Get和Post请求详细介绍

    目录 模板渲染 GET和POST请求 模板渲染 所谓模板渲染就是让flask渲染一个html文档,比如你有一个html文件,想要在网站上加载出来,你就要渲染它. 首先把这个文件,叫做模板渲染.html,放在templates文件夹下面, 然后代码中,导入render_template类 from flask import Flask,render_template 另外也可以修改模板文件的渲染路径,使用template_folder来修改 app = Flask(__name__,templat

  • 微信小程序 http请求详细介绍

    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求. 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downloadFile) WebSocket通信(wx.connectSocket) 这里以介绍wx.request,wx.uploadFile,wx.dowloadFile三种网络请求为主 设置域名 要微信小程序进行网络通信,必须先设置域名,不然会出现错误: URL 域名不合法,请在 mp 后台配置后重试

  • 编写Smarty插件在模板中直接加载数据的详细介绍

    之前使用smarty的时候,通常是在php程序端读取数据(一般从数据库),然后assign给模板的变量,才可以在前端使用这个变量.这样不是不好,只是数据多的时候php端的代码维护起来有点麻烦,特别是当存在很多模板块化得数据时. 所以写了个插件,结合之前的crud类实现在前端模板可以加载一些模块化得数据. 复制代码 代码如下: <?php/** * Smarty plugin * @package Smarty * @subpackage plugins *//** * Smarty {load_

  • flask框架渲染Jinja模板与传入模板变量操作详解

    本文实例讲述了flask框架渲染Jinja模板与传入模板变量操作.分享给大家供大家参考,具体如下: 1. 模板简介 模板是一个web开发中必备的模块,因为我们在渲染一个网页的时候,并不只是渲染了一个纯文本字符窜,而是渲染一个有富文本标签的页面,这个时候我们就需要用到模板了.在flask中,配套的模板是Jinja2,Jinja2的作者也是flask的作者. 2. flask中渲染模板 在flask中,如果我们需要渲染一个模板,那么我们就需要用到render_template这个方法了. 在我们新建

  • SpringBoot中web模板渲染的实现

    目录 模板 Model Model中添加对象 日期格式化 模板 开发Web站点的本质,其实就是根据浏览器发起的请求(输入),生成HTML代码返回给浏览器(输出).在之前的学习中,我们已经通过文件的形式存储起来而不是直接在Java代码中生成HTML代码.另一方面,博客站点是动态的,即不同的请求返回的内容可能不同.但是对于同一类请求,例如访问id分别为1和2的两篇文章,对应的URL分别为/blogs/1和/blogs/2,他们返回的HTML代码片段的结构几乎是一样的: <!DOCTYPE html>

  • Python全栈之模板渲染详解

    目录 1.标签 1.1for循环标签 1.2if标签 1.3with标签 1.4csrftoken标签 2.模板继承 3.组件 4.自定义过滤器 5.自定义标签 6.inclusion_tag自定义标签 7.小提示与小练习 总结 1. 标签 {% 标签 %} 1.1 for循环标签 <ul> <!-- 可迭代对象都可以用循环 --> <!-- 循环列表 --> {% for foo in hobby %} <li>{{ foo }}</li> {

  • Flask模板继承深入理解与应用

    目录 什么叫模板继承呢 模板页 完整代码 什么叫模板继承呢 在我的理解就是:在前端页面中肯定有很多页面中有很多相同的地方,比如页面顶部的导航栏,底部的页脚等部分,这时候如果每一个页面都重写一遍,会很麻烦,而且也没必要. 这时候就可以做一个模板,叫做父模板,里面放上相同的部分,不同的部分先使用其他东西占位,然后在不同的页面中,继承这个父模板,不同的部分填充不同的内容. 模板页 首先做一个模板页面,模板是这样子的: 上下都是不变的东西,中间的部分是不同的,不同的页面继承这个模板页,然后在中间填充不同

  • Java实现简单的模板渲染

    本文实例为大家分享了Java实现简单的模板渲染,供大家参考,具体内容如下 代码 package com.hdwang; import java.util.HashMap; import java.util.Map; /** * Created by hdwang on 2017/12/19. */ public class MyTemplate { public static void main(String[] args){ String template = "${name},${sex},

  • Python Django框架模板渲染功能示例

    本文实例讲述了Python Django框架模板渲染功能.分享给大家供大家参考,具体如下: 项目名/settings.py(项目配置,配置模板文件的路径): import os # 项目目录的绝对路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates',

随机推荐