Flask web开发之路三
今天写一个URL传参、反转URL、页面跳转和重定向
URL传参
主app文件代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/article/<id>')
def article(id):
return '您请求的参数是: %s' %id
if __name__ == '__main__':
app.run()
### url传参数:
1. 参数的作用:可以在相同的URL,但是指定不同的参数,来加载不同的数据。
2. flask中如何使用参数:
'''
@app.route('/article/<id>')
def article(id):
return '您请求的参数是: %s' %id
'''
* 参数需要放在两个尖括号中。
* 视图函数中需要放和url中的参数同名的参数
反转URL
首先,正转是指由URL中的参数得到视图函数中的内容,那么反转就是指从视图函数得到URL的参数内容
代码如下:
from flask import Flask,url_for
app = Flask(__name__)
@app.route('/')
def index():
print(url_for('my_list'))
print(url_for('article',id ='abc'))
return 'Hello World!'
@app.route('/list/')
def my_list():
return 'list'
@app.route('/article/<id>/')
def article(id):
return '您请求是id是:%s' % id
if __name__ == '__main__':
app.run(debug=True)
输出得到:

注意,这里article函数,有id参数,在url_for函数中需要传入参数,否则会报错
### 反转url:
1. 什么叫做反转url:从视图函数到URL的转换叫做反转url
2. 反转url的用处:
* 在页面重定向的时候,会使用url反转
* 在模板中,也会使用url反转
页面跳转和重定向
代码如下:
from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/')
def index():
login_url = url_for('login')
return redirect(login_url)
return '这是首页!'
@app.route('/login/')
def login():
return '这是登录页面!'
@app.route('/question/<is_login>/')
def question(is_login):
if is_login == '':
return '这是发布问答页面'
else:
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug = True)
这里实现的功能是:
1.登录主页即可跳转到'login'登录页面
2.如果'is_login’这个参数不为1,则会跳转到登录页面
### 页面跳转和重定向
1. 用处:在用户访问一些需要登录的页面的时候,如果用户满意登录,那么可以让他重定向到登录页面
2.代码实现:
'''
from flask import redirect,url_for
redirect(url_for('login'))
'''
Flask web开发之路三的更多相关文章
- Flask web开发之路九
flask_scripts介绍 项目结构如下: flask_script_demo.py文件: from flask import Flask app = Flask(__name__) @app.r ...
- Flask web开发之路六
紧接着上篇文档,写模板继承和block,URL链接和加载静态文件 模板继承和block 项目结构 主app文件代码: from flask import Flask,render_template a ...
- Flask web开发之路一
之前学过一段时间的flask,感觉还是挺好用的,自己的专利挖掘项目也想这个web框架来搭建,于是重新开始基础学习 环境:win10,python3.6,pycharm2017,虚拟环境virtuale ...
- Flask web开发之路十四
今天开始Flask的实战,创建一个项目,实现包括用户登录.注册.注销.发表博客.评论以及检索等功能 首先给出项目结构: 1.config.py文件: 存放各种配置信息 import os # dial ...
- Flask web开发之路十三
g对象 ### 保存全局变量的g属性:g:global1. g对象是专门用来保存用户的数据的.2. g对象在一次请求中的所有的代码的地方,都是可以使用的. 项目结构: g_demo.py文件代码: f ...
- Flask web开发之路十二
ge请求和post请求 ### get请求和post请求:1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. * 传参:get请求传参是放 ...
- Flask web开发之路十一
首先写一下cookie和session的概念,然后是Flask中session的工作机制以及操作session ### cookie: 1. `cookie`出现的原因:在网站中,http请求是无状态 ...
- Flask web开发之路十
首先介绍循环引用的问题: 当一个模块需要引用另一个模块的类,而另一个模块又需要引用这个模块的类时,就出现了循环引用,而没法导入类,这时候可以切断其中一条引用路径,增加一个模块 项目结构: models ...
- Flask web开发之路八
今天写Flask_SQLAlchemy的外键及其关系 ### Flask-SQLAlchemy外键及其关系: 主app文件代码: from flask import Flask from flask_ ...
随机推荐
- 【Little Demo】左右按钮tab选项卡双切换
通过前一篇文章 从简单的Tab标签到Tab图片切换 的说明,相关效果也就可以实现了. 1.左右按钮tab选项卡双切换 很明显,左右两个按钮是 absolute 布局,另外就是内容部分和Tab标签部分. ...
- C# Chart使用总结 2 ---------chart悬停选定数值操作
1.用鼠标悬停事件处理 private void Form1_Load(object sender, EventArgs e) { //connStr = connPath1 + conn2; fil ...
- Android 手动调用 返回键
有人想通过下面代码来实现手动调用返回键,很可惜会出现空指针异常. this.onKeyDown(KeyEvent.KEYCODE_BACK, null); 我们可以通过调用 onBackPressed ...
- 11G新特性 -- RMAN Multisection Backups
Oracle 11g支持以sections的方式来备份和还原数据文件.在section级别进行备份,被称作multisection backup(多段备份).section是一个数据文件中连续的块.m ...
- [ci]jenkins构建容器项目java-helloworld-非docker plugin模式
栗子思路说明: 不使用任何docker plugin 使用jenkins server本地(含mvn环境)构建,无jenkins slave jenkins server本地构建的war包,推送dep ...
- What-is-DevOps
https://www.quora.com/What-is-DevOps https://neoteric.eu/blog/devops-a-culture-of-getting-things-don ...
- 浅析tornado 中demo的 blog模块
#!/usr/bin/env python # # Copyright 2009 Facebook # # Licensed under the Apache License, Version 2.0 ...
- 跨控制器跳转view——RedirectToRoute和RedirectToAction
已知控制器AccountController.cs和HomeController.cs,如果从页面Account/Login直接跳转到Home/Index,可以利用RedirectToRoute和Re ...
- 【Unity】不能新建项目
问题:Unity5.5.2f1今天遇到个Bug,在启动器点击新建项目没有反应. 办法:先点击新建项目(没有反应),再点击Sign Out退出登录,然后再登录进来,就能跳到新建项目页面.
- Redis 的 5 种数据结构
1.string 可以是字符串,整数或者浮点数,对整个字符串或者字符串中的一部分执行操作,对整个整数或者浮点执行自增(increment)或者自减(decrement)操作. 字符串命令: ①get: ...