Flask入门 flask结构 url_for 重定向(1)

简介: Flask入门(一)1 安装虚拟环境Mac,linuxsudo pip install virtualenv ​ ubuntu系统sudo apt-get install python-v...

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'))
相关文章
|
2月前
|
JSON 前端开发 数据安全/隐私保护
通过一个form表单的渲染演示,Flask的request,重定向语法
通过一个form表单的渲染演示,Flask的request,重定向语法
30 0
通过一个form表单的渲染演示,Flask的request,重定向语法
|
2月前
|
域名解析 网络协议 开发工具
阿里云DNS常见问题之访问重定向的url访问有问题如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
2月前
|
网络协议 开发工具 Android开发
应用研发平台EMAS产品常见问题之接入httpdns后 访问重定向的url访问有问题如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
2月前
|
安全 网络安全 数据安全/隐私保护
Flask 入门系列教程(六)
Flask 入门系列教程(六)
|
2月前
|
关系型数据库 数据库连接 数据库
Flask应用基础入门总结
Flask应用基础入门总结
56 0
|
9月前
|
安全 测试技术 网络安全
软件测试|测试平台开发-Flask 入门:URL组成部分详解
软件测试|测试平台开发-Flask 入门:URL组成部分详解
44 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
Pikachu URL 重定向通关解析
Pikachu URL 重定向通关解析
|
2月前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 &quot;Hello, World!&quot;,并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
78 7
|
1月前
|
Windows
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
24 0
|
2月前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
138 3