测试开发——flask快速入门小基础

  这几天看群里面的大佬基本上个个被逼相亲,可爱小娟娟还一天相四次(简直了),我们程序员也是很帅的很美的,其实我们的头发也挺多的哈哈哈哈(至少我身边的程序员挺多头发的,当然我linux老师头发有点少),刚刚逛stackoverflow看到一个趣图保存下来了哈哈哈,当然这只是个搞笑图哈哈哈。

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)

在这里插入图片描述
这是前面的重点:
测试开发——搭建一个简单 web服务(flask框架基础)项目实战

flask

  • 一、请求与响应
  • 二、结合前端![在这里插入图片描述](https://img-blog.csdnimg.cn/20210209131635270.gif#pic_center)
    • 返回html文件
    • CSS样式
  • 三、结合后端
  • 四、Run方法
    • host
    • port
    • debug
  • 五、flask 中的配置项config
  • 六、路由
    • 引入装饰器,装饰器要放到@app.route()里面

一、请求与响应

# coding:utf-8#请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__)# 2.添加路由 视图函数(view function)
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件#return render_template('login.html')if __name__ == "__main__":
# 2.运行服务器,如果不指定端口,就会默认端口5000app.run(port=8003)

运行结果:
在这里插入图片描述

注意:如果我们返回加载一个html文件,在文件外部直接新建一个templates文件夹,因为我点开Flask的接口进去就可以看见关于它的用法。
在这里插入图片描述

二、结合前端在这里插入图片描述

返回html文件

将你所需要跳转的Html文件写进去,文件目录例如
在这里插入图片描述

源码:
login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>你真的很棒!</title>
</head>
<body><a href="https://blog.csdn.net/hanhanwanghaha">CSDN搜索关注:我一个超级无敌可爱的人鸭 </a></body>
</html>

flask_one.py

# coding:utf-8#请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__)# 2.添加路由 视图函数(view function)
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')if __name__ == "__main__":
# 3.运行服务器,如果不指定端口,就会默认端口5000app.run(port=8003)

运行结果
在这里插入图片描述

CSS样式

点击Flask函数,有个这样的定义:
在这里插入图片描述

于是在我的项目下面新建一个文件夹名为:static,写一个样式
在这里插入图片描述
再在我的Html中引入css样式
在这里插入图片描述

最后,运行一下
在这里插入图片描述

注意:其实这个文件的名字是可以改的,如
在这里插入图片描述

https://blog.csdn.net/hanhanwanghaha
我的官方原文地址,欢迎搜索加关注!
盗文章者垃圾人是也,盗者必究!

三、结合后端

static_folder
与static_url_path不同的是, static_folder会告诉程序,我的静态文件放在硬盘的位置,而static_url_path是告诉程序处理静态文件的url路径

eg:

# coding:utf-8#请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__,template_folder="bbb",static_url_path="/ooo",static_folder="ooo")# 2.添加路由 视图函数(view function)
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')
if __name__ == "__main__":
# 3.运行服务器,如果不指定端口,就会默认端口5000app.run(port=8003)

运行结果:
在这里插入图片描述

四、Run方法

点击run,就可以看见 host host debug
在这里插入图片描述

host

port

debug

  1. 设置debug=True,每次改动都会重启服务
    设置debug=False,每次改动都不会重启服务
app.run(debug=True)
  1. 设置debug=True,显示具体错误到前端(当然这个最好不要随便用,因为你已经把你的漏洞告诉别人,别人就会分析你的漏洞,so很容易遭到攻击!)
    在这里插入图片描述

五、flask 中的配置项config

我们可以通过config去获取到我们配置好的选项

# coding:utf-8#请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__,template_folder="bbb",static_url_path="/ooo",static_folder="ooo")app.config["debug"]=True
app.config["port"]=8003# 2.添加路由 视图函数(view function)
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')# 3.运行服务器,如果不指定端口,就会默认端口5000
if __name__ == "__main__":app.run(port=app.config["port"],debug=app.config["port"])

六、路由

如果说我们想使用多个路径都显示login.html页面该怎么办呢?例如

# coding:utf-8#请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__,template_folder="bbb",static_url_path="/ooo",static_folder="ooo")# 2.添加路由 视图函数(view function)
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')
@app.route("/login")
def login():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')@app.route("/cute")
def cute():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)#return "Hello,thi  s is index!"#响应为html格式#return "<p style ='color:green'>Hello,thi  s is index!</p>"#如果返回加载一个文件return render_template('login.html')# 3.运行服务器,如果不指定端口,就会默认端口5000
app.run(port=8003)

但可以简化为:

# coding:utf-8# 请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__,template_folder="bbb",static_url_path="/ooo",static_folder="ooo")# 2.添加路由 视图函数(view function)
@app.route("/login")
@app.route("/cute")
@app.route("/")
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)# return "Hello,thi  s is index!"# 响应为html格式# return "<p style ='color:green'>Hello,thi  s is index!</p>"# 如果返回加载一个文件return render_template('login.html')# 3.运行服务器,如果不指定端口,就会默认端口5000
app.run(port=8003)

引入装饰器,装饰器要放到@app.route()里面

# coding:utf-8import time
# 请求与响应
from flask import Flask, request, render_template# 1.初始化application
app = Flask(__name__,template_folder="bbb",static_url_path="/ooo",static_folder="ooo")# 装饰器 打印时间
def log_time(f):def decorator(*args, **kw):print(f'{time.time()}')return f(*args, **kw)return decorator# 2.添加路由 视图函数(view function)
@app.route("/login")
@app.route("/cute")
@app.route("/")
@log_time
def index():# 参数的获取:littledata = request.argsname = littledata.get('username')print(name)# return "Hello,thi  s is index!"# 响应为html格式# return "<p style ='color:green'>Hello,thi  s is index!</p>"# 如果返回加载一个文件return render_template('login.html')# 3.运行服务器,如果不指定端口,就会默认端口5000
app.run(port=8003)

接下来就会详细记录flask 路由,后面继续更博!

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

最后,祝大家新年快乐,在新的一年做更好的程序员,拿更高工资的程序员!
在这里插入图片描述

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

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

相关文章

【文章】鱼那么信任水, 水却煮了鱼!

鱼那么信任水&#xff0c; 水却煮了鱼。 叶子那么信任风&#xff0c; 风却吹落了叶。 人心的冷暖&#xff0c; 总是一直变幻。 熟悉的陌生了&#xff0c; 陌生的走远了。 人与人之间&#xff0c; 全靠一颗心&#xff0c; 情与情之间&#xff0c; 全凭一寸真。 落叶知秋…

VGG网络结构(二)

深度学习论文随记&#xff08;二&#xff09;---VGGNet模型解读 Very Deep Convolutional Networks forLarge-Scale Image Recognition Author: K Simonyan &#xff0c; A Zisserman Year: 2014 1、 导引 VGGNet是2014年ILSVRC竞赛的第二名&#xff0c;没错你没听错它是第…

情人节用python写个贪吃蛇安慰自己

这几天除了吃就是睡&#xff08;不知道为啥&#xff0c;吃饱就想睡&#xff09;&#xff0c;从大年三十到现在感觉啥都没做&#xff0c;写个代码安慰安慰自己吧哈哈哈哈。给大家分享几部最近看的电影&#xff08;要学英语的一定要get起来&#xff09;——《彩虹照耀》《罗宾逊漂…

【测试】用例设计思路-输入框类型功能

在我们的测试中&#xff0c;设计测试用例的质量&#xff0c;不仅与需求说明书有关&#xff0c;而且与测试人员的测试能力有关&#xff0c;今天我们通过一个典型的案例&#xff0c;总结一下对于输入框类型的功能&#xff0c;如何设计测试用例。 如图所示&#xff1a;我们需要测…

RuntimeError: Working outside of request context. This typically means that you attempted to use fun

菜吃多了醉了一、报错情况二、解决办法一、报错情况 我在写装饰器的时候运行报错&#xff1a; RuntimeError: Working outside of request context.This typically means that you attempted to use functionality that needed an active HTTP request. Consult the documen…

测试开发——flask视图函数与路由 实战重点

开头必须分享一个我的志玲姐姐&#xff0c;太可了&#xff01;点击此处 flask视图函数与路由的关系一、视图函数与路由 实战重点1.1 一个视图函数可以绑定多个URL地址1.2 视图装饰器应该放到最外层1.3所实现的装饰器要返回视图函数的返回值二、动态路由1. 用url匹配2. 通过传参…

SyntaxError: Non-UTF-8 code starting with ‘\xe2‘ 今天是小白上线的一天

打代码的时候第一行的utf-8注释居然空了个格 # coding utf-8估计是甜甜的恋爱想傻了&#xff0c;我居然还去查自己错哪里了&#xff0c;还说我的编码是对的鸭 正确输入&#xff1a; # codingutf-8

【Python爬虫】Python3+selenium环境配置

在我们爬虫爬网过程中&#xff0c;我们需要用到Python3selenium&#xff0c;Selenium是一个自动化测试工具&#xff0c;利用它我们可以驱动浏览器执行特定的动作&#xff0c;如点击、下拉等操作。对于一些JavaScript渲染的页面来说&#xff0c;这种抓取方式非常有效。 文章参考…

numpy 数组与矩阵的乘法理解

1. 当为array的时候&#xff0c;默认d*f就是对应元素的乘积&#xff0c;multiply也是对应元素的乘积&#xff0c;dot&#xff08;d,f&#xff09;会转化为矩阵的乘积&#xff0c; dot点乘意味着相加&#xff0c;而multiply只是对应元素相乘&#xff0c;不相加 2. 当为mat的时候…

(AU/PS)Adobe Audition CC.exe -系统错误 由于找不到MSVCP120.dll,无法继续执行代码。重新安装程序可能会解决此问题。

bug简直难过报错情况&#xff1a;由于找不到MSVCP120.dll&#xff0c;无法继续执行代码。重新安装程序可能会解决此问题。最终解决办法心得体会https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这…

【数据库】Window环境安装MySQL Server 5.7.21

正常我们在mysql官网下载安装的MySQL比较大&#xff0c;因为它集成了好多东西&#xff0c;尽管方便&#xff0c;但是东西比较多&#xff0c;有些我们可能不想要&#xff0c;这时我们可以直接下载单个MySQL Server安装&#xff0c;所以这篇文章主要介绍的就是在window环境下安装…

产品经理:论项目计划有多重要?——软件项目管理

凡事预则立&#xff0c;不预则废前言一、论安迪特质与项目经理的共通性二、个人感想三、我的产品经理实习笔试前言 昨天杨老师上了一让我记忆很深刻的课&#xff0c;就是项目计划的重要性&#xff0c;以《肖申克的救赎 》为例: 《肖申克的救赎 》的背景是20世纪30年代&#xff…

Android开发环境配置介绍

在我们进行AppiumAndroid进行自动化测试时&#xff0c;我们需要安装android_sdk环境&#xff0c;安装过程发现Android SDK&#xff0c;Android studio&#xff0c;AVD Manager&#xff0c;SDK Manager等名词&#xff0c;本篇文章主要介绍的就是Android开发环境的搭建&#xff0…

python——百钱买百鸡:一只公鸡5块钱,一只母鸡3块钱,三只小鸡1块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

学习《python程序设计教程》的时候&#xff0c;遇到了这个问题&#xff0c;觉得还蛮好玩的&#xff1a; 百钱买百鸡&#xff1a;一只公鸡5块钱&#xff0c;一只母鸡3块钱&#xff0c;三只小鸡1块钱&#xff0c;现在要用一百块钱买一百只鸡&#xff0c;问公鸡、母鸡、小鸡各多少…

以知乎为例子来说明MVC是个啥

记得当时了解Web开发的MVC&#xff08;Model-View-Controller&#xff09;模式后&#xff0c;有一种心血喷涌的感觉&#xff0c;觉得太有意思了&#xff08;程序员别喷&#xff0c;我就是这么没见过世面&#xff09;。我们以知乎为例子来说明MVC是个啥&#xff1a;每个人的主页…

C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人

Fighting!一、C/S概念1.1 什么是C/S1.2 C/S与B/S的区别二、主页面三、介绍四、特征五、jServer六、jMessenger七、使用代码7.1 导入项目后报错情况7.2 解决办法一、C/S概念 1.1 什么是C/S C/S分布式模式&#xff0c;是计算机用语。C是指Client&#xff0c;S是指Server&#xf…

【文章】浅相遇,薄相知,淡相守,终难忘

浅相遇 人生犹如一场戏&#xff0c;在每一个转折点&#xff0c;总有意想不到的邂逅。 有的相遇成歌&#xff0c;注定了在这绻绻红尘中&#xff0c;相携而去。有的转身为念&#xff0c;注定了行色匆匆&#xff0c;独自而行。 其实&#xff0c;上苍是公平的。在为我们关上一扇…

学习python 正则表达式——与你同行!

正则表达式定义 又称为规则表达式&#xff0c;是一个特殊的字符序列&#xff0c;利用事先定义好的一些特定字符以及它们的组合组成一个‘规则’&#xff0c;检查一个字符串是否与这种规则匹配来实现对字符的检索、过滤、匹配、替换。正则表达式需要用到re模块&#xff0c;该模块…

python 编译procto错误处理

运行&#xff1a;python -m grpc_tools.protoc --proto_path. --python_out. --grpc_python_out. helloworld.proto 出现如下错误&#xff1a; helloworld.proto: No such file or directory 解决方案&#xff1a; 解决方法一&#xff1a; cd 到helloworld.proto 的根目录 …

【Python】function、module、Package及import导入方法

计算机程序开发中&#xff0c;随着程序代码越写越多&#xff0c;在一个文件里代码就会越来越长&#xff0c;越来越不容易维护。 为了编写可维护的代码&#xff0c;我们把很多函数分组&#xff0c;分别放到不同的文件里面&#xff0c;这样&#xff0c;这个文件包含的代码就相对…