Flask入门(一)

1 安装虚拟环境Mac,linux

sudo pip install virtualenv

​ ubuntu系统

sudo apt-get install python-virtualenv

2 安装flask

1 python3 环境下全局安装
pip3 install flask 2 虚拟环境下virtualenv下安装
首先先创建env虚拟环境
mkdir myproject #新建项目目录
cd myproject
virtualenv venv #安装虚拟文件目录venv source /venv/bin/activate #启动新项目
pip3 install flask 注:部分编辑器创建虚拟环境,Python的解释路径需要更改. 3 pycharm中运行flask,选择flask创建project,一定要加载创建的虚拟环境,找到虚拟环境目录设置python解释器,设置项目目录

3 flask初起航

3.1最简单的flask程序
from flask import Flask   #导入类Flask
app = Flask(__name__) #类的实例是WSGI应用程序App # route() 装饰器把一个函数绑定到对应的 URL 上
@app.route('/')
def hello():
return 'hello python' #主函数入口
if __name__ == '__main__':
app.run() 注:
(1) __name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块hello.py
,那么此模块名字__name__就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;
假如此模块是被import导入的,则此模块名字__name__为文件名 : hello,
通过if判断这样就会跳过“__mian__:”,不执行后面的函数.
(2) 启动参数:
debug 默认为False True debug=True不能用于生产环境
port 指定端口号 默认5001
host 指定主机名 host='0.0.0.0' 所有公网ip均可访问
threaded 线程 True
(3) 包括 Flask类引入,Flask类实例app,绑定路由,定义函数,设置主函数这5个过程.
(4) debug = True 可以进入debug模式,既可以不重启服务加载,又可以显示页面错误信息.
3.2 配置文件
1 新建一个config.py文件
2 在主app文件中导入这个文件,并且配置到app中,示例代码如下
import config
app.config.from_object(config)
3 还有很多其他的参数,都是放在改配置文件中,如SECRET_KEY等

4 flask参数与变量

4.1 变量
1 变量作为参数传递: 语法<variable_name>

#(单个参数)
@app.route('/find_girl/<name>')
#视图名称
def findGirl(name):
return 'Hello girl,name is {}'.format(name)
#(多个参数)
@app.route('/find_girl/<name>/<age>')
#视图名称
def findGirl(name,age):
return 'Hello girl,name is {},age is {}'.format(name,age)
4.2 参数类型
(1) string 默认就为字符串
(2) int 限制传递进来的参数为 int类型 不做类型的转换
(3) float 限制传递进来的参数为 float类型 不做类型的转换
(4) path 将请求的路由地址后面的所有参数 都认为是一个参数的值 不再做路由的查找 @app.route('/arg_type/<string:arg>') #传递进来的数据 都更改为n字符串
@app.route('/arg_type/<int:arg>') #限制传递数据类型为int
@app.route('/arg_type/<float:arg>') #限制传递数据类型为float
@app.route('/arg_type/<path:arg>/') #将路由地址后面的所有 都认为是参数

5 构造响应与抛出异常

5.1 构造响应
下面我们来讲下构造响应:
构造响应通过导入 from flask import make_response
可以使用 render_template() 方法来渲染模板 404模板页面 : error.html @app.route('/res')
def res():
response = make_response(render_template('error.html'), 404)
return response
浏览器页面结果: 响应结果
5.2 抛出异常
需要引入abort   from flask import abort    先抛出错误状态码再捕获

#抛出500错误码
@app.route('/look_meizi/')
def look_meizi():
abort(500) #捕获指定的404状态码 支持错误页面的定制
@app.errorhandler(404)
def page_not_found(e):
return '你请求的地址被外星人挟持走了!!!' #捕获500服务器错误状态码
@app.errorhandler(500)
def server_error(e):
return e

6 重定向与构造URL

6.1 重定向
需要 from flask import redirect

def myRedirect():
#重定向到res绑定的URL
return redirect('/res')
#或者重定向带参数的URL
return redirect('/find_girl/name')
6.2 构造URL(URL反转):
  • 在页面重定向中会使用url反转,url_for('hello')可以找到hello视图函数对应的路由
  • 在模板中,也会使用url反转.
如果 Flask 能匹配 URL,那么 Flask 可以生成它们吗?当然可以
构造URL通过引入 from flask import url_for @app.route('/redirect/')
def myRedirect():
#url_for 重定向接路由地址,redirect重定向到改地址,因此一般组合用起来很方便 #url_for 构造无参url
# return redirect(url_for('hello'))
#url_for 构造带参url,这样不管find_girl的路由怎么变,都可以重定向至该页面
return redirect(url_for('find_girl',name='goodsunck'))

Flask入门 flask结构 url_for 重定向(一)的更多相关文章

  1. Flask入门之结构重组(瘦身)-第13讲笔记

    1. pip list Flask 0.10.1 Flask-Bootstrap 3.3.5.6 Flask-SQLAlchemy 2 Flask-Script 2.0.5 Flask-WTF 0.1 ...

  2. Flask入门和快速上手

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

  3. 【Flask】 项目结构说明

    项目结构 Flask的一大优势就是其极其轻量化.但是也需要注意到,如果我们要用Flask做一个大项目的话,把所有代码写在一个文件里肯定是不合适的.非常难以维护.但是和Django这种框架又不一样,Fl ...

  4. Flask—01-轻松入门Flask

    Flask入门 WEB工作原理 C/S与B/S架构:客户端-服务器,浏览器-服务器 B/S架构工作原理 客户端(浏览器) <=> WEB服务器(nginx) <=> WSGI( ...

  5. Flask 入门(第二篇)

    1. 数据库 Flask 没有限定使用哪种数据库,不管是 SQL 还是 NoSQL.如果你不想自己编写负责的 SQL语句的话,你也可以使用 ORM,通过 SQLALchemy 即可实现. 1.1 SQ ...

  6. Flask入门系列(转载)

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

  7. flask入门到入土

    # Flask ## 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用 ...

  8. 超实用的Flask入门基础教程,新手必备!

    Flask入门基础教程 Flask简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手.它可以很好地结合MVC模式进行开发,开发人员分工合 ...

  9. [python][flask] Flask 入门(以一个博客后台为例)

    目录 1.安装 1.1 创建虚拟环境 1.2 进入虚拟环境 1.3 安装 flask 2.上手 2.1 最小 Demo 2.2 基本知识 3.解构官网指导 Demo 3.1 克隆与代码架构分析 3.2 ...

随机推荐

  1. 108th LeetCode Weekly Contest Minimum Falling Path Sum

    Given a square array of integers A, we want the minimum sum of a falling path through A. A falling p ...

  2. UVALive - 6952 DP 分段/隔板

    题意:商品总价按四舍五入计算,n个物品最多可分\(d+1\)段,求最小代价 \(dp[i][j]\):\(j\)个物品分\(i\)段 注意一个技巧是只在需要分出新的段时才四舍五入(旧段结算),这样就避 ...

  3. Win10如何新建用户怎么添加新账户

    https://jingyan.baidu.com/article/25648fc162d5899190fd0069.html 很多朋友都是安装完Windows10系统后,直接使用超级管理员账号登录系 ...

  4. 微信获取用户信息的两个接口和两个ACCESS_TOKEN

    有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口 ...

  5. 如何在64位WIN7下安装64位的解压版mysql-5.6.37-winx64.zip

    1.到mysql官网下载 https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.37-winx64.zip 2.将解压缩后的文件放到自己想要的地方, ...

  6. java中获得对象的方法

  7. 5. AQS(AbstractQueuedSynchronizer)抽象的队列式的同步器

    5.1 AbstractQueuedSynchronizer里面的设计模式--模板模式 模板模式:父类定义好了算法的框架,第一步做什么第二步做什么,同时把某些步骤的实现延迟到子类去实现. 5.1.1 ...

  8. mysql 语句执行的过程

    客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的执行计划: mysql根据优化器 ...

  9. docker~环境变量到底怎么用

    docker已经用了两年多了,从开始的简单应用到现在的自动化部署,已经越来越感觉到它的威力,今天把Hitchhiker部署完成后,看到了它与.net core项目有个类似的地方,就是对于多环境部署的时 ...

  10. linux下统计文本行数的各种方法(二)

    上一篇讲的都是统计单个文件的方法,直接在命令行执行就可以.现在试试脚本的方式,统计多个文件的行数 一.统计目录下所有文件的文件数及所有行数 脚本暂时命名为count.sh,代码如下: #!/bin/b ...