Jinja

python主流框架简介和Django框架的使用

倖福魔咒の 提交于 2021-02-19 01:51:53
[TOC] 一、手撸简易web框架 通过统一思想,对各个功能或者接口进行统一,越来越像是Django框架的流程,实现了低配版的Django。下面是具体的流程图 具体步骤为:wsgiref库拿到用户的请求内容,我们判断用户请求的链接地址内容,匹配到对应的后端函数,后端函数内部调用数据库得到需要的数据,再拿到html文件进行读取后,之后再把数据通过jinja2模块语法插入html文件中,最后再把修改过后的html文件return出去。wsgiref库把该html文件内容发送回浏览器,浏览器拿到内容后展示在页面上。结束。 基于第三方模块帮你撸 使用了wsgiref库和jinja2库 wsgiref库帮我们封装了http协议,并将http的请求头和请求首行变成字典。即将请求内容解包,响应的内容压包。 jinja2库专门用来处理后端数据与html页面的交互 views.py 里面的放的是函数 我们管这些函数叫视图函数 视图层 urls.py 里面放的是 路由(后缀)与视图函数的对应关系 路由层 templates文件夹 里面放的全是html文件 模板层 二、动静态网页 1. 静态网页 数据是写死的 万年不变(哪怕改变了 也是人为直接修改) 2. 动态网页 数据是实时获取的 eg: 1 后端代码动态获取 当前时间 2 数据是从数据库查询出来的 三、jinja2模板语法 1. jinja2的作用

程序员必备的网站推荐

こ雲淡風輕ζ 提交于 2021-02-13 23:44:17
CSDN: https://blog.csdn.net/chk218/article/details/83620744 1 一、开源代码托管平台 GitHub(https://github.com) gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。 gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。 2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。 码云(https://gitee.com) 码云专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发 2 二、编程学习网站 菜鸟教程(http://www.runoob.com) 菜鸟教程的 Slogan 为:学的不仅是技术,更是梦想! 菜鸟教程域名为 runoob.com, runoob 为 Running Noob 的缩写,意为:奔跑吧!菜鸟。 菜鸟教程包括了HTML、CSS

Django 与 Flask框架的比较

荒凉一梦 提交于 2021-02-05 04:42:51
Django Django恐怕是最有代表性的Python框架了。它是一个遵循MMVC架构模式的开源框架。它的名字来自Django Reinhardt,一个法国作曲家和吉他演奏家,很多人认为他是历史上最伟大的吉他演奏家。位于堪萨斯洲的Lawrence城的Lawrence Journal-World报社有两位程序员,Adrian Holovaty和Simon Willison,他们在2003的时候开发出了Django,用于给报纸开发web程序。 Django内置了模板引擎,同时也通过OOTB来支持流行的Jinja2引擎。它还支持基于正则的URL分发,可以通过简单的URL来完成复杂的映射。 Django的优势之一是只需要单独的安装包来安装。其他的一些类似的框架需要下载很多组件才能开始工作。而且,Django还有完善的保持更新的文档,对于开源项目来说这通常是短板。它是一个健壮的框架,很好的集成了很多来自社区的插件和扩展。项目背后的社区看上去也组织的很好,这从它非常完善的文档和教程就可以看出来。 Flask Flask是一个基于Jinja2和Werkzeug的python微框架,和其他框架类似,它是BSD授权的,一个有少量限制的免费软件许可。使用Flask的网站包括领英LinkedIN和Pinterest。Flask有以下特点: 内建的单元测试支持 模板使用Jinjia2 大量文档

Python如何开发网站?这两个不能少!

不打扰是莪最后的温柔 提交于 2021-01-26 10:27:09
  Python这门语言不用过多介绍想必大家都很清楚,Python不仅是一门简单易学的编程语言,同时适用于各大领域,无论数据分析、爬虫还是开发网站,Python几乎无所不能,那么Python如何开发网站?这两个框架你一定要学会。   Python主流的应用领域包含:Web开发、图形界面开发、系统网络运维、网络编程、科学数学计算、3D游戏开发等。   尤其是Web开发和数据科学计算方面,Python给予了特殊支持,也是应用最广泛的两大领域。   至于如何用Python来搭建网站?一定少不了Web开发框架,Python比较热门的Web开发框架就是Flask和Django,再结合其他方面的技术,就可以搭建一个开发网站。   Flask:属于轻量级框架,本身就是用Python语言编写的,兼容性很高,它采用Werkzeug Jinja2模板,搭配一系列extension功能,就可以开发一个简单的网站,十分适合初学者。   当然,如果你是一个小团队,开发网站复杂性不是很高,推荐大家使用Falsk,如果网站功能比较复杂,推荐大家使用Python的另外一个框架,Django。   Django是一个全能型的框架,也是Python Web开发使用最多的一个框架,十分具有学习的价值,如果初学者接触,刚开始可能很难,但是后期的话,只要你沉下气来好好学习,一定可以掌握好。 来源: oschina 链接:

关于Flask-Login中session失效时间的处理

ⅰ亾dé卋堺 提交于 2021-01-13 08:47:51
最近需要使用Python开发web系统,主要用到的框架就是Flask,前端使用Jinja2模板引擎和Bootstrap,web容器使用Cherrypy,其中关于Login管理的使用了Flask-Login插件。 基本上也是从零学起,前前后后花了有好几个月的时间,还是在借鉴了已有的一些项目基础上。在开发的过程中有很多的想法和体会,记录下来,有不对的地方欢迎大家指正。 在处理登录管理的部分,在 Flask-Login 中,如果你不特殊处理的话,session 是在你关闭浏览器之后失效的,而如果不关闭浏览器的话,失效的时间据说是1年,还是1个月,这个地方没看到官方说法,总之是很长,在某些业务场景下这样的处理方式是不能接受的。由于系统的使用者提出了新的需求类似平时的SSO处理机制,大概无任何操作一二十分钟就提示需要再次登录,这样的要求是合理的,之前也没有太注意这个方面的时间,所以就需要回过头来研究Flask-Login的session失效时间和设置问题。以前的登录部分代码: 1 @app.route( ' /login ' , methods=[ ' GET ' , ' POST ' ]) 2 def login(): 3 if request.method == ' GET ' : 4 return render_template( ' login.html ' ) 5 6

Django 模板语言 标签

我怕爱的太早我们不能终老 提交于 2021-01-12 04:36:48
前言:django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。 ------ 深度变量的查找(万能的句点号) 在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . )。 1.模板变量 django :{{ 变量 }} # 因为django只有一个context返回,全部数据都集中在一起 jinja2 :{{ 对象.变量 }} 2.根据列表的下标获取值 django :{{ 列表.0 }} jinja2 :{{ 列表[0] }} 3.根据字典的键获取字典的值 django :{{ 字典.key }} jinja2 :{{ 字典[key] }}或者{{ 字典.key }} 4.for循环时取序号 django : {% for item in 列表 %} {{forloop.counter}} < 1-- 表示当前是第几次循环,从 1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从 0开始 --> {% endfor %} jinja2 : {% for item in 列表 %} {{loop.index}} < 1-- 表示当前是第几次循环,从 1开始 --> {{loop.index0}} <!-- 表示当前是第几次循环,从 0开始 --> {% endfor %} # for遍历字典 {

Python里的Flask开发环境的搭建

扶醉桌前 提交于 2021-01-10 17:07:56
在已经安装好了Python后,我这里用的是Python3.5,准备进一步学习Flask框架,下面记录搭建Flask环境 这里使用了虚拟环境,在虚拟环境里,最小化的安装Flask. 参考步骤: 1.首先搭建虚拟环境 已经安装好了virtualenv的库,从dos命令行进入相应文件夹。 我的当前目录是:D:\Work\Python\FlaskProject virtualenv Flask_venv 在当前文件夹下,会生成Flask_venv文件夹 2.启动Flask_venv虚拟环境 .\Flask_venv\scripts\activate 3.安装Flask pip install flask 4.安装和Flask配套使用的jinja2、werkzeug pip install jinja2 pip install werkzeug 安装后用pip list查看 4.编写一个helloworld.py文件,初步测试 1)、代码: # -*-coding:utf8-*- from flask import Flask app = Flask( __name__ ) @app.route( " / " ) def hello(): return " Hello World! " if __name__ == " __main__ " : app.run() 2)、启动:python

flask之--钩子,异常,上下文,flask-script,模板,过滤器,csrf_token

风格不统一 提交于 2021-01-02 05:58:56
一.请求钩子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: - 在请求开始时,建立数据库连接; - 在请求开始时,根据需求进行权限校验; - 在请求结束时,指定数据的交互格式; 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。 请求钩子是通过装饰器的形式实现,Flask支持 如下四种请求钩子 : - before_first_request - 在处理 第一个请求 前执行(初始化的时候) - before_request - 在 每次 请求前执行 - 如果在某修饰的函数中返回了一个响应,视图函数将不再被调用 - after_request - 前提是视图函数没有抛出错误,在每次请求视图函数处理之后执行 - 接受一个参数:视图函数作出的响应 - 在此函数中可以对响应值在返回之前做最后一步修改处理 - 需要将参数中的响应在此参数中进行返回 - teardown_request: - 在每次 请求后 执行, 无论视图函数是否正常工作 - 接受一个参数:错误信息, 如果有相关错误抛出   工作模式为非调试模式,即Debug=False   代码: # !/usr/bin/env python # -*- coding: utf-8 -*- # author tom from flask import Flask from

用python帮你生产指定内容的word文档

坚强是说给别人听的谎言 提交于 2020-12-13 16:33:20
Python网络爬虫与文本数据分析(学术) 很多岗位经常发送模板化的内容,比如给员工发送工资条信息,实际上改动的地方只有有限的几个字段,诸如姓名、岗位、底薪、补助等,而其他部分内容基本不改动。 如果能用python自动化填充需要调整的字段,那么工作量将会大大降低。docxtpl可以让我们实现docx文件的自动化批量生成。 安装docxtpl ! pip3 install docxtpl Looking in indexes : https : //pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied : docxtpl in / usr / local / lib / python3 . 7 / site - packages ( 0.6 . 3 ) Requirement already satisfied : lxml in / usr / local / lib / python3 . 7 / site - packages ( from docxtpl ) ( 4.4 . 1 ) Requirement already satisfied : six in / usr / local / lib / python3 . 7 / site - packages ( from docxtpl ) ( 1

docxtpl模块的word模板替换内容

a 夏天 提交于 2020-12-13 14:29:23
一、介绍 这个包使用两个主要的包: 用于读取、写入和创建子文档 用于管理插入到模板docx中的标记 python-docx模板已经创建,因为python-docx对于创建文档非常强大,但是对于修改文档却无能为力。 这个想法是开始创建一个你想要用microsoft word生成的文档的例子,它可以像你想要的那样复杂:图片,索引表,页脚,页眉,变量,任何你可以用word做的事情。然后,由于您仍然在使用microsoft word编辑文档,所以可以直接在文档中插入类似jinja2的标记。您将文档保存为.docx文件(xml格式):它将是您的.docx模板文件。 现在可以使用python-docx-template从.docx模板和关联的上下文变量中生成任意数量的word文档。 更多高级用法请查看文档,以下是简单示例 https://docxtpl.readthedocs.io/en/latest/#jinja2-like-syntax 二、代码 from docxtpl import DocxTemplate def temp_word(tmep_path,word_apth): tpl = DocxTemplate(tmep_path) # 需要替换内容以key:value的方式进行更换 context = { " name " : " 上海市XXXXXX公司 " , " num "