flask框架(创建路由,路由限定,jinjia模板,动态传值,控制代码块)

PythonWebLesson1

为什么要学习框架?
  • 没有规矩不成方圆
  • 站在巨人的肩膀上
  • 本学期重点 Flask 框架的学习
MVC

是一种设计模式,提高了代码的拓展性和复用性。

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)

在这里插入图片描述

没有前后端分里之前,前端的代码是和后端业务逻辑的代码混合在一起的,也就是说作为后端的程序员必须要懂得前端的知识。开发效率很低。

而前后端分离后,前端人员只需要专注html,js,css的编写即可,后台人员专注于业务逻辑,接口的编写即可。

请求数据只需要调用对应的请求接口即可

第一个flask程序

在这里插入图片描述

1.右上角点击File -> 2.选择Flask框架 -> 3.命名

在这里插入图片描述

下载相关的文件,耐心等待

在这里插入图片描述

在这里插入图片描述

点击右上角的播放键
在这里插入图片描述

点击蓝色的url地址

在这里插入图片描述

出现Hello World!字样,恭喜你第一个flask程序创建成功了

分析代码
#导入flaks类
from flask import Flask
# name参数用于查找资源的路径
app = Flask(__name__)

#路由
@app.route('/')
def hello_world():
 return 'Hello World!'

#应用启动
if __name__ == '__main__':
 app.run(debug=True)

创建路由
#这是我们自己创建路由
@app.route('/myroute')
def myroute():
    return '好想出去玩啊'	

每进行一次就该就要重启服务器,点击右上角绿色的返回按钮。或者app.run那的播放键

在这里插入图片描述

测试http://127.0.0.1:5000/myroute成功显示

路由限定

url默认Get请求

按F12选择network在测试页面刷新看看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gJUqgku1-1586669975168)在这里插入图片描述

使用POSTMAN发送模拟请求数据

在这里插入图片描述

在实际的应用中不只有GET请求,还有POST , PUT , DELETE请求如何添加请求方式呢?

@app.route('/myroute',methods=['POST','PUT'])
def myroute():
    return '好想出去玩啊'

测试一下

在这里插入图片描述

路由传参

不可能每个人的页面都单独做一个页面,整体相同局部不同。

对url的参数进行解析,到后端进行处理,返回个性化的界面

在这里插入图片描述

用这个方法我们就可以查看B站的第一个账号

在这里插入图片描述

嗯没错就是这个B。。。。。站用户

#路由传参
#<参数名>
@app.route('/space/<userid>')
def getparam (userid):#传入参数
    return  '我的id %s'%userid   #显示对应的字符串

在这里插入图片描述

问题来了,那岂不是乱传也可以?

在这里插入图片描述

对乱搞的行为加以限制,永远不要相信用户给你的数据!!

如果是订单,需要的是整形如何加以限定

# 在参数前面加上	类型:
@app.route('/space/<int:userid>')

在这里插入图片描述

jinji2模板

网页动态显示

1.首先导入模板类 render_template

from flask import Flask,render_template

2.在模板中创建网页

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
我是首页
</body>
</html>

渲染首页

# 渲染首页
@app.route('/index')
def index():
    # 填入网页名称
    return render_template('index.html')

在http://127.0.0.1:5000/index中查看渲染情况

动态传值
变量代码块

使用{{}}来表示变量名,语法叫做变量代码块

{#{{ param_str }}#}这样注释 ctrl+/快捷键

#  导入flask项目,模板
from flask import Flask, render_template

#  创建Flask应用程序实例,传入__name__定义资源路径
app = Flask(__name__)

#  定义路由以及视图函数
@app.route('/index')
def index():
    #  return 'Hello py!'
    param_str = 'hello flask'
    #变量名和html的参数保持一致
    return render_template('index.html', param_str=param_str)

if __name__ == '__main__':
    app.run(debug=True)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <h1>我是首页</h1>
{{ param_str }}
    
 {#注释#} 
 {#{{ param_str }}#}
</body>
</html>

@app.route('/index')
def index():
    # 传字符串
    param_str = 'hello flask'
    # 传列表
    param_list = [1, 2, 3, 4]
    #传字典
    param_dict ={
        'name': 'weiming',
        'age': 18
    }
    # 变量名和html的参数保持一致
    return render_template('index.html', param_str=param_str, param_list=param_list,param_dict=param_dict)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
我是首页
{#注释#}
{#{{ param_str }}#}
{{ param_str }}
<hr>
列表
{{ param_list }}
<hr>
列表取值
{{ param_list.0 }}
<hr>
列表取值
{{ param_list[0] }}
<hr>
传字典
姓名:{{ param_dict['name'] }}
<br>
年龄:{{ param_dict['age'] }}
<br>
param_dict{{ param_dict }}
</body>
</html>

在这里插入图片描述

控制代码块

通过控制语句,条件输出for,if

for

快捷键输入for,按Tab快速生成

{% for 参数 in 列表名 %}
	{{参数}}
{% endfor %}
{% for param in param_list %}
    {{ param }}
{% endfor %}

在这里插入图片描述

if
小于三才输出
{% for param in param_list %}
    {% if param<3 %}
     {{ param }}
    {% endif %}
{% endfor %}

根据规定样式输出

按Tab快速生成

{% for 参数 in 列表名 %}
	{{参数}}
{% endfor %}
{% for param in param_list %}
    {{ param }}
{% endfor %}
过滤器

根据规定样式输出

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值