pythonflask框架_Flask框架

一、Web前端与后端(PythonWeb)

1.Web前端:网页,包含HTML,CSS,JS。

静态网页:不能与服务器交互的网页

动态网页:能够与服务器交互的网页

2.Web后端:、Flask,Django、Ajax技术

二、服务器

1.服务器:为用户提供服务的计算机,将数据抽象成URL,以供用户访问。

2.组成:

硬件:主机

软件:能够处理用户请求的程序:Apache、Tomcat、IIS(InternetInformationService)、Nginx

3.作用:

存储Web相关的数据

处理请求和响应

具备安全性

三、框架

框架:为了解决一些开放性问题,重复性问题而产生的程序结构

框架模式:

MVC

M:模型层Model,与数据库打交道

V:视图层View

C:控制层Controller,处理请求与响应

MTV(Flask)

M:模型层Model

T:Template模板(HTML模板),

V:View视图层,处理请求与响应

四、Flask使用

1.Flask是一个基于Python并依赖于Jinja2模板引擎和WerkZeugWSGI服务的框架。

WSGI:WebServerGatewayInterface.Web服务网关接口,提供处理网络请求相关的功能

路由:为了匹配用户的请求地址,会自动执行视图函数,视图函数中必须有返回值,返回字符串显示到相应的页面中。

1、定义路由及视图函数

@app.route('/地址')

deffuncName():

return""#响应到页面中的内容

#视图函数

@app.route("/")

defindex():#匹配到路径后执行的视图函数

return"

欢迎

"

2、定义带参数的路由

变量:

@app.route("/login//")

deflogin(name,age):

return"%s,%s"%(name,age)

注意:路径中的参数变量永远是字符串类型

@app.route('/login//')

deflogin(name,age):

return"

欢迎登录,%s,%s

"%(name,age)

3、类型转换器

缺省字符串,不能包含'/'

int:转换整数

float:转换小数

path:字符串,允许包含'/'

使用:

@app.route('/show/')

@app.route('/calcute//')

defcalcute(n1,n2):

#n1=int(n1)

#n2=int(n2)

n3=n1+n2

return"%d+%d=%d"%(n1,n2,n3)

4、多个URL执行同一个视图函数

@app.route('/')

@app.route('/index')

defindex():

return"首页"

@app.route('/show')

@app.route('/show/list')

@app.route('/show/')

defshow(name="ze"):

return"show%s"%name

注意:

如果在app.run()设置host="0.0.0.0";不影响当前虚拟IP(127.0.0.1);可以让当前局域网中其他的计算机,通过内网IP访问服务器

模板

模板是一种特殊的HTML文件,Python+html网页结构,允许在HTML文件中定义变量,定义流程控制。使用模板可以使视图函数专注于处理业务逻辑,将页面渲染交由模板控制。

2.使用

导入render_template

在视图函数中使用render_template("模板文件"),生成模板字符串,交由浏览器解析

所有的模板文件必须存在名为"templates"的文件下

变量代码块

1)模板中使用变量,语法{{变量名(key)}}

2)从视图函数中获取相关的变量,传递到模板文件中。

returnrender_template("模板文件",key1=value1,key2=value2)

函数中可以传递若干键值对,其中的key名就是在模板文件中使用的变量名

视图函数中定义变量name=""、age=、dic=、tub、list将数据传递到模板文件中显示

defshow():

name="xb"

returnrender_remplate("",uname=name)

模板文件中使用{{uname}}

#模板

@app.route('/info')

definfo():

#返回模板文件,可以传递变量

#render_template("")返回模板字符串

print("%s",render_template("01-show.html"))

#returnrender_template("000.html")

#returnrender_template("001.html",uname=name,list=list)

returnrender_template("01-show.html",name="flask",age=20)

01-show.html

Title

模板

{{uname,list[0]}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

滑动翻页效果_Flutter实现3D效果,一个字,炫!

老孟的博客地址:http://laomengit.com/Flutter 中3D效果是通过Transform组件实现的,没有变换效果的实现:class TransformDemo extends StatelessWidget {overrideWidget build(BuildContext context) {return Scaffold( appBar: AppBar(…

overleaf 插入图片_latex中插入图片

latex排版之插入图片:在排版图片之前,个人认为不管用不用到,引入下面两个包:\usepackage{graphicx}\usepackage{subfigure}(1)插入单个图片,图片格式为png\begin{figure}[h]\centering\includegraphics[width4cm,heigh…

debian命令乱码_Debian 9.5 解决中文显示乱码

一.首先检查LOCALE情况说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在。1、启动终端#apt-get install locales2、重新配置LOCALE#dpkg-reconfigure locales在界面中我勾选的是“en_US.UTF-8”和“zh_CN.UTF-8”。…

ssh 连接mysql_mysql命令行客户端如何通过ssh服务器连接数据库啊?

ssh到跳板机然后用 mysql 连接利用ssh开启一个隧道我这里的MySQL服务器是192.168.41.83, 我要在192.168.41.72连接首先在192.168.41.72执行命令开启隧道[rootmysql-test-72 ~]# ssh -NPf -o StrictHostKeyCheckingno root192.168.41.83 -L 3305:127.0.0.1:3306root192.168.41.8…

mysql 创建 数据库失败_MySQL创建数据库失败

如果使用root账号登录到数据库create database时提错错误:MySQL: 1006 - Can‘t create database ‘***‘ (errno: 13)或MySQL: 1006 - Can‘t create database ‘***‘ (errno: 28),一般是mysql用户没有目录权限的问题。先用Linux指令 : ls -ld 查看d…

mysql 客户服务号_mysql客户端及服务端常用实用工具功能总结

一、MySQL服务器端实用工具程序:1、mysqld:SQL后台程序(即MySQL服务器进程),客户端通过该服务连接服务器来访问数据库。2、mysqld_safe:服务启动脚本。mysqld_safe增加了一些安全特性,如当出现错误时重启服务器并向错误…

MySQL8怎么设置时区为东八区_mysql时区设置为东八区

场景:后台返回给页面的时间统一差8小时。 分析:差八小时,应该是时区问题。具体的是哪一层出的问题呢,mybatis?mysql?系统时间? 解析: 1.查询mysql时区(正常) 输入show variables like "%time_zone%";,显示当前时区 全局参数system_time_zone 系统时区,在My…

mysql网络异常_mysql运行过程中因网络或者数据库原因导致的异常

1、异常信息:The driver has not received any packets from the server异常栈:原因:此异常为jdbc自身的超时限制,一般为应用调用jdbc的API设置了queryTimeout超时限制,当成功获取数据库连接执行sql的时候与mysql服务端断开&#…

mysql撤销用户授权_mysql用户授权及撤销

mysql数据库服务在不做授权的情况下只允许数据库管理员从数据库服务器本机登录。默认只有数据库管理员从数据库服务器本机登录才有授权权限mysql -u root -p (本机登录mysql服务器)mysql -u root -h 192.168.4.5 -p (远程连接mysql服务器)方式1 在库外重置数据库管理员密码&…

js清空文本框的值_一个Vue.js实例控制字变大变小,含样式操作,flex布局。「603」...

这是一个用vue.js对css操作完成的实例。当然用了flex简单布局。一、先创建一个html文件,记得添加vue库文件。二、创建一盒容器vmdiv,用vue绑定它,测试vue绑定后的插入值text1效果。三、加入文本框和两个按钮。四、通过flex排序,让…

Linux mysql.plugin_Linux下MySQL安装

博主邮箱www.zzherfoxmail.com qq:11024719111 //获得以下所需的源代码包(文末附有安装包),并存放在/usr/local/src2 //与mysql相关:3 boost_1_59_0.tar.gz cmake-3.6.2.tar.gz mysql-5.7.16.tar.gz45 //安装cmake前的依赖包的安装6 //检查gc…

mysql mybatis 工具类_我肝了一个星期,为你们整理出了mybatis程序配置教程

1、搭建实验数据库我们创建一个mybatis实验数据库,并创建一个user表为后续实验准备2、IDEA新建项目,连接数据库新建一个普通的maven项目删除src目录,作为父工程pom.xml中导入相关的maven依赖1、 MySQL驱动2、 MyBatis驱动3、 junit驱动连接我…

python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...

A lightweight python module to connect Microsoft Access Database. the module is to use ADO engine through Win32 COM. the module need another Win32 API module, you can find it at the below url:Pyminiado是一个轻量级的Python访问Access数据库的接口,单…

mysql gt resource_实用干货,MYSQL这么用就对啦

本文主要梳理了 SQL 的基础用法,会涉及到以下方面内容:SQL大小写的规范数据库的类型以及适用场景SELECT 的执行过程WHERE 使用规范MySQL 中常见函数子查询分类如何选择合适的 EXISTS 和 IN子查询了解 SQLSQL 是我们用来和数据打交道的方式之一&#xff0…

python 查看当前目录_Python学习第156课--ls的运用、环境变量以及PATH

【每天几分钟,从零入门python编程的世界!】之前简单的介绍了Linux中几个简单的命令。这节再深入一点介绍下 ls 的运用。lsls相当于是list的简写,它的作用是把我们当前目录中的文件列举出来。ls -l把当前目录下的文件以及它的具体信息列举出来…

python对数组的操作_Python对数组的基本操作

# codingutf-8Created on 2014-3-29author: Administrator创建并打印数组arr ["aex", "bfe", "mpilgrim", "zddd", "example"];print(arr);#[aex, bfe, mpilgrim, zddd, example]print(arr[2]);#mpilgrim数组的负索引li[-n…

python菜单函数_Python 自学笔记- 列表及其内置函数

0. 列表都可以存放一些什么东西?我们可以说Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。mix [1,"张三",3.14, [1,"李…

按120分计算成绩 mysql_Mysql实用教程试卷B.doc

.上 装 订 线系名: 班级: 姓名: 学号: 考试日期:下 住 装 订 线河南教育学院2014—2015学年第二学期期末考试软件学院2014级计算机信息管理专业普通专科班《MySQL实用教程》试卷B卷题号一二三四总分分数得分评卷人一、…

java double==Double_java之double类型数值的比较

先看demo:public classL26 {/***paramargs*/public static voidmain(String[] args) {//TODO Auto-generated method stub//double a 300000;double x 300000.00000000003;//double比较,小数点后有效位double y 300000.000000000003;//主要注意的是double类型直接/&…

莫烦python博客_《莫烦Python》笔记 -- numpy部分

个人感觉,在numpy里,从说法上,数组与矩阵可以互换1.1 numpy & pandas有什么用?1.2 numpy & pandas的安装安装Anaconda2.1 numpy属性import numpy as np# 将一个列表转化为矩阵array np.array([[1,2,3],[2,3,4]])# 查看矩…