Jinja

Flask&&人工智能AI --1

北城余情 提交于 2020-05-08 07:37:11
Flask初识,Response三剑客,jsonify以及send_file、Request,模板语言 Jinja2,用户登录例子,内置Sessio 一、Flask初识 首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 三大主流Web框架对比 1、Django:   优点:大而全,集成了很多组件,Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架;django通常用于大型Web引用,由于内置组件足够强大,所以使用Django开发可以一气呵成   缺点:这么多资源一次性加载会造成一部分资源浪费 2、Flask:   优点: 小而轻,原生组件几乎为0,三方提供的组建请参开Django非常全面,属于短小精悍型框架;通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用   缺点:稳定性相对较差 3、Tornado   优点:原生异步非阻塞,在IO密集型应用型和多任务处理上占据绝对性的优势,属于专注型框架;通常用于API后端应用,游戏服务后台,其内部四线的异步非阻塞老稳了。   缺点:干净,三方及原生组件几乎为0,连个session都不支持 Flask 的安装与HelloWorld Flask的安装特别难,但是鄙人很懒

django day 01 web应用简介 基于socket手写web服务器 用wsgiref模块写一个web navicate使用 jinja2代替字符串的替换

允我心安 提交于 2020-05-06 09:24:06
django访问页面的整个过程 用户在浏览器输入网址,网址发给服务器,url控制器先来接手,通过url匹配一下交给不同的视图来处理,然后视图去model拿数据,model去数据库拿数据, model拿完数据,把数据给视图,视图再把数据给模板(模板就是html页面),模板最终返回给浏览器,也就是页面。这就是django完整访问页面的过程。 浏览器发消息称之为请求,服务端回消息称之为响应。 简单的web框架 \r\n表示换行 import socket sk=socket.socket() sk.bind(("127.0.0.1",8080))#插上手机卡 #监听 sk.listen()#等待连接 while 1: #获取与客户端的连接 conn, _=sk.accept() #接受客户端发来消息 data=conn.recv(8096) print(data) #给客户端回复消息 conn.send(b'http/1.1 200 OK\r\n\r\n') conn.send(b'<h1>hello world</h1>') #关闭 conn.close() sk.close() http协议简单来说就是收发消息的格式要求 \r的r是return的意思,回到行首 根据不同的路径返回不同的内容 """ 完善的web服务端示例 根据不同的路径返回不同的内容 """ import

Django和Flask这两个框架对比

好久不见. 提交于 2020-05-04 10:20:32
Flask 在 Django 之后发布,现阶段有大量的插件和扩展满足不同需要 Django发布于2005年,Flask创始于2010年年中。 Django功能大而全,Flask只包含基本的配置, Django的一站式解决的思路,能让开发者不用在开发之前不用花费大量时间在选择应用的基础设施。Django有模板,表单,路由,认证,基本的数据库管理等等内建功能。与之相反,Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用。 Flask 比 Django 更灵活 用Flask来构建应用之前,选择组件的时候会给开发者带来更多的灵活性 ,可能有的应用场景不适合使用一个标准的ORM(Object-Relational Mapping 对象关联映射),或者需要与不同的工作流和模板系统交互。 一、整体设计方面 首先,两者都是非常优秀的框架。整体来讲,两者设计的哲学是区别最大的地方。 Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了,app, admin后台生成, 使用非常方便. Flask只提供了一些核心功能,非常简洁优雅。它是一个微框架,其他的由扩展提供,但它的blueprint使它也能够很方便的进行水平扩展。 二、路由设计

Ansible专栏:一步到位玩透Ansible

耗尽温柔 提交于 2020-04-30 15:01:22
一步到位玩透Ansible 我写了一个关于Ansible的专栏,从0到1玩透性质的,非常系统性,大概39W字,转成pdf有430多页,只需39元。 地址: https://blog.51cto.com/cloumn/detail/83 专栏目录 : 1.学习不迷茫:Ansible要如何学至精通 2.初入Ansible世界:用法概览和初体验 3.制定演员表:inventory 4.嘿,瞧瞧Ansible的灵魂:playbook 5.Ansible力量初显:批量初始化服务器 6.更大的舞台(1):组织多个文件以及Role 7.更大的舞台(2):利用Role部署LNMP案例 8.回归Ansible并进阶:变量、条件、循环、异常处理及其它 9.如虎添翼的力量:解锁强大的Jinja2模板 10.服务0 downtime的追求:Haproxy+Nginx集群服务的滚动发布和节点伸缩 11.Ansible你快点:Ansible执行过程分析、异步、效率优化 12.让Ansible更安全:使用Vault进行加密 13.蚂蚁多了也咬不死Ansible:Ansible Tower 14.Ansible管理docker和openstack 15.意外之喜:Ansible管理Windows主机 16.成就感源于创造:自己动手写Ansible模块 详细目录: 1.学习不迷茫:Ansible要如何学至精通 1

flask小记

两盒软妹~` 提交于 2020-04-29 11:03:41
小APP代码 小坑 flask jinja模板显示图片 flask ajax操作 部署 TOC 小APP代码 import os from flask import Flask, flash, request, redirect, url_for, render_template, send_from_directory, jsonify, json from werkzeug.utils import secure_filename import time from os.path import join, getsize from utils import allowed_file, get_hash, unzip_file import shutil import process ALLOWED_EXTENSIONS = {'zip'} app = Flask(__name__) app.config['UPLOAD_FOLDER'] = './resources/source/' app.config['ANALYZE_FOLDER'] = './resources/analyze/' @app.route('/', methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': #

flask 电子邮件Flask-Mail --

空扰寡人 提交于 2020-04-29 02:29:56
电子邮件 在web程序中,经常会需要发送电子邮件。比如,在用户注册账户时发送确认邮件;定期向用户发送热门内容或是促销信息等等。在Web程序中发送电子邮件并不复杂,借助扩展Flask-Mail或是第三方邮件服务,只需要几行代码就可以发送邮件。 下面例子中,我们使用一封示例邮件,邮件仅包含几个必要的字段,如下: 标准的收信方和发信方字符串由姓名和邮箱地址两部分组成,,二者由空格相隔,比如“姓名 <Email地址>”。字符串中的姓名是可选的,收信方一般可以不写姓名,这时可以直接写出邮箱地址,比如” hello@example.com ”。 使用Flask-Mail发送电子邮件 扩展Flask-Mail包装了python标准库中的smtplib包,简化了Flask程序中发送电子邮件的过程。我们使用pipenv安装Flask-Mail: (Lenovo-ezd1lI9Y) C:\Users\Lenovo> pipenv install flask-mail Installing flask-mail... Adding flask-mail to Pipfile's [packages]... Installation Succeeded 和其他扩展类似,我们实例化Flask-Mail提供的Mail类并传入程序实例以完成初始化,如下所示: from flask_mail import

常见的 35 个 Python 面试题及答案

大兔子大兔子 提交于 2020-04-28 01:56:44
1. Python 面试问题及答案 作为一个 Python 新手,你必须熟悉基础知识。在本文中我们将讨论一些 Python 面试的基础问题和高级问题以及答案,以帮助你完成面试。包括 Python 开发问题、编程问题、数据结构问题、和 Python 脚本问题。让我们来深入研究这些问题 Python 面试问题 Q.1. Python 的特点和优点是什么? Python 可以作为编程的入门语言,因为他具备以下特质:    1. 解释性 2. 动态特性 3. 面向对象 4. 语法简洁 5. 开源 6. 丰富的社区资源    实际上 Python 的优点远不止这些,更详细的介绍可以阅读 Introduction to Python( https://data-flair.training/blogs/python-tutorial/) Q.2. 深拷贝和浅拷贝的区别是什么? 深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。在 Python 中,我们使用 deepcopy()函数进行深拷贝,使用方法如下: 深拷贝-Python 面试问题及答案 浅拷贝是将对象的引用复制给另一个对象。因此,如果我们在副本中进行更改,则会影响原对象。使用 copy()函数进行浅拷贝,使用方法如下: 浅拷贝—Python 面试问题及答案 Q.3. 列表和元祖有什么不同?

Flask学习-Flask app启动过程

半世苍凉 提交于 2020-04-27 18:18:54
因为0.1版本整体代码大概只有350行,比较简单。所以本篇文章会以Flask 0.1版本源码为基础进行剖析Flask应用的启动过程。 Flask参考资料 flask ,官网有一个最简单app: from flask import Flask app = Flask(__name__) @app.route('/hello') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080,debug=True)    下面就以上面这个最简单的Flask app为起点,以v0.1版本源码为核心进行说明整个Flask应用的启动过程: 一、初始化App from flask import Flask #导入Flask类 app = Flask(__name__) #1、实例化Flask app    flask.py文件: 1.1、定义类变量 class Flask(object): ''' 全局变量 ''' request_class = Request response_class = Response static_path = '/static' secret_key = None session_cookie_name = 'session

flask基础之jijia2模板使用基础(二)

落爺英雄遲暮 提交于 2020-04-27 18:02:12
https://www.cnblogs.com/cwp-bg/p/8892403.html 前言 在以前前后端不分离的时代,后台程序员往往又当爹又当妈,需要将前端程序员写的h5页面填充模板语言。而jijia2是一门十分强大的python的模板语言,是flask框架的核心模块之一。先简单介绍一下jijia2模板的用法。 系列文章 flask基础之安装和使用入门(一) 变量 模板可以说是直接展示给客户端的,那么在模板中有视图函数传递给模板的普通变量和可以直接使用的全局变量。 普通变量 变量的语法结构 < p> {{ bianliang }} </ p> # 模板中的变量 {% if bianliang > 3 %} # 用来执行赋值或条件或判断语句 {# said something #} # 注释 变量对象的属性查找 bar.per # 先查找bar对象是否有per属性,再查找是否有per对象(如字典中的键值对); bar[ 'per'] # 先查找是否有per对象(如字典中的键值对),再查找bar对象是否有per属性; # 如果没有找到,则返回未定义对象,默认用空字符串替代; 变量的来源 # render_template render_template函数会模板和传递的变量值进行组装 # 自定义的两个变量名context和message可以在模板中使用 render

FastAPI框架入门 基本使用, 模版渲染, form表单数据交互, 上传文件, 静态文件配置

久未见 提交于 2020-04-27 16:33:26
安装 pip install fastapi[all] pip install unicorn 基本使用(不能同时支持,get, post方法等要分开写) from fastapi import FastAPI app = FastAPI() @app.get('/') # 点get就支持get请求 def read_root(): return {"hello":'world'} if __name__ == '__main__': import uvicorn uvicorn.run(app,host='127.0.0.1',port=8080) 模版渲染 fastapi本身是没有模版渲染功能的,需要你借助于第三方的模版工具 该框架默认情况下也是借助于jinja2来做模版渲染(flask也是使用jinja2, 如果用过flask, 默认是装过jinja2) # 安装 pip install jinja2 # 基本使用 from starlette.requests import Request from fastapi import FastAPI from starlette.templating import Jinja2Templates app = FastAPI() # 挂载模版文件夹 tmp = Jinja2Templates(directory=