我是在pycharm中写的。那么需要在Termainal中cd 到当前文件所在的文件夹,在运行python py文件名

  一开始想用面向对象的方法来封装这些小模块,但发现在面向对象中要用到类属性,以及类的静态方法,也可能需要修改类属性的方法。果断放弃了

  那么我又试了函数的封装。还是不行,对一些技能的掌握还是差火候。因为有装饰器,那么在一个大的函数中使用函数嵌套也很麻烦。那么用一个装饰器装饰所有的封装函数的话,

  还是有局限性。不是说不行,说到底还是自己的技能掌握还是很差劲

  所以以失败告终。待下次技能升级再详细的将这些方法封装,就可以直接将代码放入了。最后只用到了程序入口,好尴尬。

  并且今天发现了在页面如果出不来的情况会有提示错误信息,就是自己英语水平还是有限,只能看懂一点。

  不墨迹了。

代码如下

  

# -*- coding: utf-8 -*-

# 首先需要导包
"""
导入重定向,站内跳转,json强转为json格式
"""
from flask import Flask, redirect, url_for, jsonify app = Flask(__name__) # 使用Flask路由 指定网址和端口 指向
# 方法一
@app.route('/')
def index():
return "指定的网址输出的指定内容、hello world hello python hello flask" # 方法二
# 给网址增加一个参数,输入网址,走到参数指定的网页
@app.route('/hello')
def hello():
return "走到hello这个方法。输出页面内容" # 那么在上边的方法中也可以添加参数,,以<>的形式放入参数
# 注意,在单输入world这个网址,会走不进去。要加参数。定义几个,就输入几个
@app.route('/world/<id>/<name>') # 注意书写的格式要有'/'
def world(id, name):
print(id, name) # 在终端输出写入的参数
return "这是网页显示的参数:%s, %s" % (id, name) # 使用重定向模块进行跳转
# 参数传的是什么。那么就在网址结尾输入这个参数
@app.route('/jump')
def jump(): # 没有参数,并且需要用到跳转的包 redirect
# redirect(location, code=302, Response=None):内部源码中所带的参数
# return redirect('http://www.baidu.com/') # 还是要注意书写的格式,在网址的结尾加'/'
return redirect('http://127.0.0.1:5000/hello') # 也可以跳转到本页面的哪个方法 # 那么还有一个模块内封装了跳转本页面的方法
# 需要导包url_fro 参数指定路由方法名称
@app.route('/jumpOne')
def re_url_in():
"""
:return: 返回的是方法名。而不是网址
"""
return redirect(url_for('index')) # 使用jsonify模块来让网页直接显示json数据。
@app.route('/json')
def re_json():
# 可以先写一个dict
json_dict = {
'id':2,
'title':'flask的一些简单的应用',
'content':'flask的json格式化,会在页面直接展示json格式'
}
# 这里的页面返回的是二进制,之后在改进
return jsonify(json_dict) '''
这里有俩个前置访问,和俩个后置访问。
'''
# 在启动服务的第一次调用此方法。
# (不管是谁。启动服务的第一次,就调用此方法一次,不会重复)
@app.before_first_request # 前置访问1
def before_first_request():# 我们就用方法名来定义函数名
print("这里输出的会在服务中看到,优先级比下一个方法更高"   这里的是在终端显示的结果,我直接复制过来了。

  * Restarting with stat
  * Debugger is active!
  * Debugger PIN: 240-758-350
  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  这里输出的会在服务中看到,优先级比下一个方法更高
  127.0.0.1 - - [19/Dec/2018 11:17:06] "GET /json HTTP/1.1" 200 -

# 前置访问2 请求网址时
@app.before_request
def before_request():
# 每刷新一次就会调用这个方法 也是在终端窗口显示。可以多刷新几次试试看
print("再次输出的会是每一次请求调用这个方法") # 后置访问1。这个比较特殊,需要带参数
@app.after_request
def after_request(response):
print("在请求之后,调用这个方法。")
# 因为要有请求就有响应,那么需要返回response、不然会报错
return response
# 后置访问2 是记录错误的方法
# 比如网络环境很差。容易丢包。需要将发生的事件或者错误传回日志中
# 方便记录,对以后的搭建有好处。属于优化吧,我个人理解
@app.teardown_request
def teardown_request(e): # e = Error,服务出现的错误信息。
# 那么不知道错误信息返回的是什么,我们需要字符串的形式返回这个错误信息
print("打印服务器出现的错误信息调用这个方法。错误信息是:%s" %str(e))


# 调用程序入口。运行起来更方便。
if __name__ == '__main__':
# 指定页面进入debug模式。方便调试。当正式上线时候默认False
app.run(debug=True)
# 如果端口有冲突,那么可以在指定一个没有用过的端口来运行自己搭建的服务
# app.run(debug=True, port=5001)
  

												

flask入门小方法的更多相关文章

  1. angularJS入门小Demo【简单测试js代码的方法】

    1.首先建立一个文件夹 demo, 2.在其中建立一个文本文档,改名为 demo-1.html, 3.把html中要引入的 js 文件拷贝到 demo目录下, 4.然后用 Notepadd++ 编辑刚 ...

  2. Flask入门和快速上手

    目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 路由 唯一的 UR ...

  3. Flask入门系列(转载)

    一.入门系列: Flask入门系列(一)–Hello World 项目开发中,经常要写一些小系统来辅助,比如监控系统,配置系统等等.用传统的Java写,太笨重了,连PHP都嫌麻烦.一直在寻找一个轻量级 ...

  4. 02SpringMvc_springmvc快速入门小案例(XML版本)

    这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:

  5. Spring IoC、DI入门小程序

    Alt+/智能提示xml配置文件节点及属性:在接口上使用Ctrl+T可以提示其实现类 一.IoC控制反转(将创建对象的权利交给spring)入门小程序 1.引入jar包 2.工程基本结构 3.新建Us ...

  6. SpringBoot+Shiro入门小栗子

    写一个不花里胡哨的纯粹的Springboot+Shiro的入门小栗子 效果如图: 首页:有登录注册 先注册一个,然后登陆 登录,成功自动跳转到home页 home页:通过认证之后才可以进 代码部分: ...

  7. 简述Python入门小知识

    如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训 ...

  8. Flask 入门一( flask 框架和 flask-script 库)

    Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...

  9. angularJS入门小Demo2 【包含不用数据库而用data.json格式响应前台的ajax请求方式测试】

    事件绑定: <html> <head> <title>angularJS入门小demo-5 事件指令</title> <script src=&q ...

随机推荐

  1. C# 泛型约束 xxx<T> Where T:约束(一)

    泛型约束 代码举例 发现我们游戏的代码中,主程写了很多类似这样的代码: public static T CreateObject<T>(out int objectId) where T ...

  2. LabVIEW TCP/IP 断开重连问题

    LabVIEW的TCP/IP函数库非常好用,但是不恰当地设置打开连接结点的参数将带来一些问题,麻烦.如下图的打开连接的参数设置: 上图中指定了本地的端口,会发生这样的情况.当我们关闭应用程序之后,连接 ...

  3. /etc/sudoers文件的分析以及sudo的高级用法

    高级用法总结: sudo命令是普通用户的提权操作指令.在权限控制中,我们可以使用/etc/sudoers文件中来进行设置.基本的用法比较熟悉.比如设置一个普通用户可拥有root用户的运行权限,那么设置 ...

  4. 粗略的整改一下blog

    一.先找个简约的模板:看个人喜好咯 二.页面定制CSS: 1.首先,查看主页源码,了解一下各个标签的id,引用的class等 2.通过操作相应的id,class,和标签,进行个性化.这里需要具备看懂和 ...

  5. 测试dos攻击对openflow中flow_table溢出的影响

    环境准备 环境 ubuntu16.04 mininet pox scapy 安装mininet sudo apt-get update sudo apt-get upgrade git clone g ...

  6. 2-5 R语言基础 factor

    #因子:分类数据#有序和无序#整数向量+标签label#Male/Female#常用于lm(),glm() > x <- factor(c("female"," ...

  7. Eclipse Mars 2安装Drools6.4插件(Drools and jBPM tools)时无法安装JBoss Runtime Drools Detector

    在eclipse上本地安装Drools6.4Final的时候出现两个组件无法正常安装的情况,具体组件如下: 具体的提示信息为: Cannot complete the install because ...

  8. python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器

    1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...

  9. win10下nvidia控制面板看不到

    64位win10,nvidia控制面板看不到,控制面板里没有,服务里也没有nvidia相关服务,但驱动已经安装了. 解决办法: 1.下载GeForce Experience并安装 . 2.通过GeFo ...

  10. echarts 中文API

    http://echarts.baidu.com/echarts2/doc/doc.html#Toolbox