Flask Jinjia2 与 react】的更多相关文章

Jinjia2 这是flask使用的模板工具,利用render_template方法可以方便的将后端的数据传给前端. 但是如果要使用react呢. 我如果在jsx中直接使用{{}}是不能输出变量的. 然后我在quora上面看到了别人的方法:就是将reactDom的render方法暴露给html中的js代码. index.html: <script type="text/javascript"> show_user_info("{{ user_name or ''}…
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在flask中解决CSRF攻击 3.Flask-SQLAlchemy 1.Flask-SQLAlchemy简单介绍 2.安装 3.数据库连接设置 4.创建模型类 5.数据基本操作:增删改查 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 1.设置template_folder…
1.1.模板传参 (1)主程序 from flask import Flask,render_template app = Flask(__name__) @app.route('/') def hello_world(): context = { 'username':'derek', 'age':18, 'gf':{ 'name':'xxx', 'height':160 } } return render_template('index.html',**context) #加双下划綫,就可以…
思路: 通过flask-wtf创建forms表单类 在app.py中创建search_name()视图函数,实例化form表单类,将通过render_template将form传给html模板 创建html模板,引用form表单类生成的 文本输入框,搜索按钮 forms.py from flask_wtf import FlaskForm from wtforms import StringField,SubmitField from wtforms.validators import Data…
基础准备 Python 3.6.5 Conda Visual Studio Code 虚拟环境 创建虚拟环境 conda create -n flask 激活虚拟环境 activate flask 关闭虚拟环境 deactivate flask 安装Flask conda install falsk 生成依赖 生成依赖的主要目的是为了记录当前虚拟环境中,所安装的程序包,以便在团队开发的时候,能够有效的同步团队成员的依赖环境. pip freeze > requirements.txt 在VS C…
用 Python 构建 web 应用 如果说仅仅要用 Python 构建 web 应用,可以将 socket 连接.HTTP 原始请求和响应格式等涉及网络基础的东西交给现成的库来实现,只需要专注于 web 端界面.交互.业务逻辑以及数据库的设计,那么使用 Python 构建一个 web 应用实际上就比较简单了. 关于 Python 这门语言 这是我第一次使用 Python 语言,简单了看了下 廖雪峰的 Python 教程,了解了相应的语法和 web 开发相关的内容.其实在编写代码时能感受到,Py…
真棒Python  https://awesome-python.com/ 精选的Python框架,库,软件和资源的精选列表. 灵感来自awesome-php. 真棒Python 管理员面板 算法和设计模式 反垃圾邮件 资产管理 音频 认证 构建工具 内置类增强功能 高速缓存 ChatOps工具 集群计算 CMS 代码分析 命令行工具 兼容性 计算机视觉 并发和并行 组态 加密 数据分析 数据验证 数据可视化 数据库驱动 数据库 日期和时间 调试工具 深度学习 DevOps工具 分配 文档 下载…
jQuery入口函数 等着DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完毕 $(function () { // 此处是页面DOM加载完成的入口 }); $(document).ready(function () { // 此处是页面DOM加载完成的入口 $('div').hide() ); 演示代码 由于本人使用Flask Jinjia2注释样式为 {# #} <!DOCTYPE html> <html lang="en"> <head&…
在之前的文章中我们介绍过flask调用jinja2模板的基本使用,这次我们来说一下jinjia2模板的使用 Jinja2 在其是一个 Python 2.4 库之前,被设计 为是灵活.快速和安全的. 模板仅仅是文本文件.它可以生成任何基于文本的格式(HTML.XML.CSV.LaTex 等等). 它并没有特定的扩展名, .html 或 .xml 都是可以的. 模板包含 变量 或 表达式 ,这两者在模板求值的时候会被替换为值.模板中 还有标签,控制模板的逻辑.模板语法的大量灵感来自于 Django…
接上文 For循环 和其它编程语言一样,for用来编辑列表中的项.下面以一个例子来说明for在flask的jinjia2模板中的使用. 创建一个模板list.html 代码如下{% extends "base.html" %} {% block content %}     {% for user in users %}     <li>{{ user }}</li>     {% endfor %} {% endblock %} 在code.py中添加url规…
之前的几篇博客是将flask 结合 antd本地化,但是这样使得antd无法按需加载(也不支持ES6的语法),而且在写的过程中还需要把每个组件都用antd对象,这样的做法虽然是实现了antd的本地化,但是无法最大化的使用antd组件库,最好的方式就是官网上的组件代码直接拿过来用就行,今天所做的就是这个功能. 首先是借用Webpack ,它是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需…
这两天在研究flask和antd,想把这俩个东西结合来使用,单独学antd的时候用的是dva来配置,但是发现这样与flask结合的话需要启动两个服务,作为flask只是作为数据的接口,并没用用到其强大的模板渲染功能,所以最后还是想能本地化antd,把它当做只是一个ui组件库来用的话可能就能实现了.下面是具体的流程. 在上一篇中写到了将antd本地化,在此基础上我们就可以用antd表单组件渲染一个登录页面,再将其放在flask的templates中.模板login.html: <!DOCTYPE…
Flask from flask import Flask , request from flask_cors import * import flask import json import pickle app = Flask(__name__) CORS(app, resources=r'/*') headers = { 'Cache-Control' : 'no-cache, no-store, must-revalidate', 'Pragma' : 'no-cache' , ' ,…
学习react,配置是很痛苦的一关,虽然现在有了create-react-app这样方便的工具,但是必须要自己配置一遍,才能更好地进行项目开发. 首先要明确一个概念:react的文件必须经过编译才能被浏览器识别,因此我们需要webpack这个打包工具来把react的组件打包成一个js文件,然后将这个js文件放到flask目录下,然后引入到flask模版的html文件里面.当然,你也可以在前端用express等服务进行客户端渲染,只将flask服务视为一个传递数据的api. 下面开始配置吧 1.如…
Jinja2模板介绍和查找路径 在前面的章节中,视图只是直接返回文本,然而在实际生产环境中其实很少这样用,因为实际的页面大多带有样式和复杂逻辑的HTML代码,这可以让浏览器其渲染出非常漂亮的页面. 我们创建好flask项目,会发现有一个templates目录,这个目录就是用来存放模板文件 如果我们要使用模板,则需要导入render_template模块 我们先在templates目录下创建模板文件index.html,内容如下: <h3>I love python</h3> 然后我…
再Jinjia2中过滤器是一种转变变量输出内容的技术.··过滤器通过管道符号“|与变量链接,并且可以通过圆括号传递参数” .举例说明: {{my_variable|default('my_variable is not defined')}} my_variable 为变量,default为过滤器,my_variable is not defined是过滤器的参数.default过滤器的含义是:判断被转换的变量是否被定义过,如果没有被定义,则用字符串参数替换被转换的变量. 下面列出几个常用的过滤…
下面是一个jinjia2的简单模板的例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jinjia2 Demo</title> </head> <body> <ul> {% for item in navigation %} <li><a hre…
Flask Web 框架Django 15 优势 : 组件全 - admin - Model ORM - Forms 教科书式 劣势 : 加载所有组件 - 占用资源较高 重型框架 Flask 3 优势 : 轻如鸿毛 扩展性极强 三方组件全 劣势 : 什么组件都没有 三方组件全 - 版本兼容问题 导致不稳 1.Flask 安装 + 启动 from flask import Flask app = Flask(__name__) app.run() 高级启动: from flask import F…
oldboy:s9day114 参考博客:https://www.cnblogs.com/wupeiqi/articles/7552008.html 一.Flask简介 1.安装Flask pip install flask Flask: - 短小精悍.可扩展性强的一个Web框架. - 依赖wsgi:werkzurg(安装Flask时,这些依赖也会被自动安装) 2.Werkzurg服务器 单独使用Werkzurg服务器: from werkzeug.wrappers import Request…
flask_jinjia2.py ''' flask中的jinjia2模板语言(和django中模板类似): (1)模板变量{{ }} (2)模板标签{% %} ①for循环遍历 {% for foo in %} ...... {% endfor %} ②if...else判断 {% if %} ... {% elif %} ... {% else %} ... {% endif %} (3)模板继承{% extends html文件 %},配合模板中定义的block重写需要改动的部分 {% e…
这几天学的东西比较多,时间又有点不够用,趁着快吃饭了,赶紧总结总结. 00x1 宏: 如果学过C语言的童鞋,可能知道宏在C语言里面是一个定义一个固定参数的变量.在flask里面,宏是相当于一个函数的作用.不是像C语言的一个变量,而是定义了一个函数.这个函数是html的函数,霍霍,html还能有函数?是的呀,之前我也布吉鸟.知道之后先是嗯嗯嗯····,然后想了想,好像没啥用啊,我还不如直接写一个循环多方便...其实是我懒了,不想学这个东西了.并且这个宏,在我们项目中,我翻了一下,用在哪个地方呢?就…
接上文 注释的使用 在jinjia2模板中,使用{# #}进行代码注释,如下所示 运行后发现,注释不会被render出来 去掉空行 两种方法可以去掉jinjia2模板中的空白行,一是设置jinjia2的环境变量,如下 app.jinja_env.trim_blocks = True app.jinja_env.lstrip_blocks = True 另一种是通过在模板的逻辑块中添加-号 {% if name -%} <h1>Hello {{ name | upper }}!</h1&g…
接上文 模板继承 Jinji2中的模板继承是jinjia2比较强大的功能之一. 模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享. 这样做一方面可以提取共享代码,减少代码冗余和重复的工作量 另一方面,对于后期的维护和管理也非常方便. 一个根模板(或叫基模板)主要有三部分组成: 一是公共的js,css等资源文件的引用, 二是定义好一个布局框架, 三是定义子模板可以重写的部分(block) 下面我们以一个例子来说明模板继承的使用方法 创建一个基模板 选中templates文件夹,右…
1.1.模板传参 (1)主程序 from flask import Flask,render_template app = Flask(__name__) @app.route('/') def hello_world(): context = { 'username':'derek', 'age':18, 'gf':{ 'name':'xxx', 'height':160 } } return render_template('index.html',**context) #加双下划綫,就可以…
一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Flask: 优势:小而精,组件只有session,第三方机构强烈支持Flask,非常多的三方组件,简单至极 缺陷:由于三方组件的关系,稳定性相对较差 Flask-session 3.Sanic 优势:异步IO非阻塞,原生WebSocket,小而精,组件只有Session,第三方机构强烈支持非常多的三方…
Flask中默认的模板语言是Jinja2 I. Jinja2模板语言中的 for {% for foo in g %} {% endfor %} II. Jinja2模板语言中的 if {% if g %} {% elif g %} {% else %} {% endif %} 示例 : STUDENT = {'name': 'Old', 'age': 38, 'gender': '中'}, STUDENT_LIST = [ {'name': 'Old', 'age': 38, 'gender'…
一:渲染模板 app.run(debug=True)  开启debug模式,flask框架自动提示错误提示的页面显示. 视图函数 from flask import Flask from flask import request from flask import redirect from flask.ext.script import Manager from flask import render_template app = Flask(__name__) @app.route("/us…
目录 前言 Backend-Flask Frontend-React Done References 前言 新的一年,开始水第一篇技术文.碰巧最近React玩得多,撸一篇文章纪念一下开发环境的搭建.…
接上文 宏 可以理解为函数,即把一些常用的模板片段做好封装,以便于重用,减少工作量和维护难度. 宏的定义很简单: {%macro xxx()%} ##这里写内容 {%endmacro%}   下面引用官方的一个例子进行说明: {% macro input(name, value='', type='text', size=20) -%} <input type="{{ type }}" name="{{ name }}" value="{{ valu…
# coding:utf-8 from jinja2 import Template x = """ <p>大爷的孙子</p> <ul> {% for i in my_list %} <li>{{ i }}</li> {% endfor %} </ul> """ template = Template(x) # 输出是一个HTML格式的字符串(视图模板) print(temp…