002.flask的基本使用

news/2025/3/18 8:58:34/文章来源:https://www.cnblogs.com/positive-boy/p/18341931

目录
  • flask的基本使用
    • 1.基本使用
    • 2.传参的两种方式
    • 3.通过返回html网页来展示
    • 4.通过面向对象传参给html网页
    • 5.在html里面写条件语句
    • 6.在html中用循环
    • 7.总结

flask的基本使用

1.基本使用

1722740726950

点三角形运行

1722740771712

复制http://127.0.0.1:5000到浏览器上软后加上面的/index得到如下:

1722740860159

  • 可以给其添加debug,host(主机号),port(端口号)

    在run函数中添加:

    if __name__ == '__main__':app.run(debug=True,host='0.0.0.0',port=8888)
    
    • 简单说一下这三个的作用

      1. debug=True就是不需要手动运行,没改动一下,它会自动刷新。
      2. host就是主机号,如果设置为0.0.0.0的话,别的电脑可以访问我们的项目。
      3. port:就是端口号,flask默认的端口号是5000,但是有些电脑这个端口可能被别的程序占用了,这时候就需要改端口号了。

      1722747528524

      如图:

      1. 1722747582194
      2. 1722747615890

2.传参的两种方式

  1. 第一种方法

    /blog/<数据类型:参数名>

    • 先创建一个路由和一个视图函数如下:

      1722741288458

    • 运行如下:

      1722741351895

  2. 第二种方法

  • 先导入request模块

    from flask import Flask,request

1722741451901

  • 然后创建一个路由和一个视图函数如下:

    1722741628511

提示:这里的request.args是得到一个类似与 字典的数据,用get()方法来获取键名为page的值。

  • 得到结果如下:

    1722741942718

3.通过返回html网页来展示

  • 导入模块render_template

    from flask import render_template

    如图:

    1722742276779

  • 在templates文件下新建一个.html文件

    1722742367316

    1722742420869

    1722742444048

    然后再first.html中添加一点检验内容如下:

    1722742587285

  • 然后创建一个路由和一个视图函数如下:

    1722742809522

    温馨提示:上图中的路由地址blog/html需要修改为/blog/html,要不然会报错。

    1722743001033

  • 得出结果如下

    1722743035793

4.通过面向对象传参给html网页

  • 提示:我们还是first.html中展示内容

  • 在app.py中创建一个类User如下:

    1722743383593

  • 然后创建一个路由和一个视图函数并且调用

    1722743600331

  • 在first.html中调用属性如下:

    1722743727602

    提示:密码那里写错了,是users.pwd,见谅!!!

  • 运行,得出结果如下:

    1722743911278

5.在html里面写条件语句

  • 模拟一个问题:如果大于等于18岁,允许上网,否则不可以上网。

    • 解决方法

      1. 创建一个html文件online.html

        1722744456522

      2. 创建一个路由和一个视图函数如下

        1722744602142

      3. online.html文件中调用这个属性

        1722745067036

      4. 结果如下:

        1722745272136

        1722745287064

    1722745301182

6.在html中用循环

  • 在templates文件夹中创建一个circle.html的文件

  • circle.html文件内容如下:

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
    </head>
    <body>{% for con in contexts %}<div>账号:{{con.username}}</div><div>密码:{{con.password}}</div>{% endfor %}
    </body>
    </html>
    
  • 创建一个路由和一个视图函数如下

    @app.route('/circle')
    def circle():context=[{'username':'soul','password':'xjs13149420'},{'username':'python','password':'dianzan'}]return render_template('circle.html',context=context)
    
  • 调用函数结果如下:

    1722746386129

7.总结

  1. 所有app.py的代码如下:
from flask import Flask,request,render_templateapp = Flask(__name__)@app.route('/')
def hello_world():  # put application's code herereturn 'Hello World!'
#创建一个路由
@app.route('/index')
#创建一个视图函数
def index():return '欢迎学习Flask 框架'
@app.route('/blog/<int:arg>')
def args(arg):return f'你输入的参数是{arg}'
@app.route('/request/')
def req():page=request.args.get('page',default=1,type=int)return f'你正在浏览图书的页数是{page}页'@app.route('/blog/html')
def html1():return render_template('first.html')#创建一个类
class User():def __init__(self,username,pwd):self.username=usernameself.pwd=pwd
#
@app.route('/class')    
def cs():user=User(username='admin',pwd='xjs13149420')return render_template('first.html',users=user)
@app.route('/internet/')
def if_age():age=request.args.get('age',default=17,type=int)return render_template('online.html',age_big=age)@app.route('/circle')
def circle():context=[{'username':'soul','password':'xjs13149420'},{'username':'python','password':'dianzan'}]return render_template('circle.html',contexts=context)
if __name__ == '__main__':app.run(debug=True,host='0.0.0.0',port=8888)
  1. templates文件夹中的代码展示如下:

    • circle.html:

      <!DOCTYPE html>
      <html lang="en">
      <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
      </head>
      <body>{% for con in contexts %}<div>账号:{{con.username}}</div><div>密码:{{con.password}}</div>{% endfor %}
      </body>
      </html>
      
    • first.html:

      <!DOCTYPE html>
      <html lang="en">
      <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
      </head>
      <body><div>键盘敲烂,工资过万!!!</div><div>用户名:{{users.username}}</div><div>密码:{{users.pwd}}</div>
      </body>
      </html>
      
    • online.html

      <!DOCTYPE html>
      <html lang="en">
      <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
      </head>
      <body>{% if age_big < 18 %}<div>你的年龄是{{age_big}},未成年不可以上网!!!</div>{% else %}<div>你的年龄是{{age_big}},可以上网,欢迎!!!</div>{% endif %}</body>
      </html>
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777766.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring学习(四)AOP分析

动态代理:代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 切面(aspectj),切面包含切点(pointCut)和增强方法(advice),对连接点(joinPoint,类的方法就是连接点),然后织入(Weaving),原始对象为代理对…

蒙特卡洛模拟(3)————求解有约束的非线性规划问题

目录前言一、问题提出二、蒙特卡罗模拟的大体思路1.求出每个变量的大致范围2.生成随机数进行模拟试验三、手动计算每个变量的大致范围1.处理等式问题————进行降维2.处理不等式问题————得到大致范围(1)先处理简单的约束,得到变量范围(2)对复杂的约束进行放缩,得到…

使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容

前言 这算是一篇学习记录博客了,主要是学习语义内核(Semantic Kernel)的实践,以及Aspire进行全栈开发的上手体验,我是采用Aspire同时启动API服务,Blazor前端服务以及WinUI的桌面端项目,同时进行三个项目的代码修改,整体感觉很方便,如果代码都修改了只需要启动Aspire项…

微信小程序3

1.样式文件1.小程序中不需要主动来引入样式文件2.px是写死的像素,不会变的,需要把页面中某些元素的单位由 px 变为 rpx1.设计稿 750px750px=750rpx 1px=1rpx2.把屏幕宽度变为375px375px=750rpx 1px=2rpx 1rpx=0.5px3.存在一个设计稿 宽度不和750成比例或者未知,…

Java流程控制02:顺序结构

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。 顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的, 它是任何一个算法都离不开的一种基本算法结构。 顺序结构在程序流程图中…

6-2训练模型的三种方法

Pytorch通常需要用户编写自定义训练循环,训练循环的代码风格因人而异。Pytorch通常需要用户编写自定义训练循环,训练循环的代码风格因人而异。 有三类典型的训练循环代码风格:脚本形式训练循环,函数形式训练循环,类型是训练循环。 下面以minis数据集的多分类模型的训练为例…

kibana报错:Your basic license does not support watcher. Please upgrade your license.

kibana突然遇到以下错误,特地记录下:错误内容如下:   解决方法:删除,然后启动:

Python逆向

参考链接: https://www.bilibili.com/video/BV1JL4y1p7Tt/?spm_id_from=333.999.0.0 https://bbs.kanxue.com/thread-282542.htm https://blog.csdn.net/weixin_35967330/article/details/114390031?spm=1001.2014.3001.5501 https://0xd13a.github.io/ctfs/0ctf2017/py/前言…

浏览器插件监听元素变动-用于直播自动回复

直播获取评论区的原理 MutationObserver 是一个强大的浏览器API,它可以监听DOM的变化,包括元素的添加、删除、属性的更改等。 开发需求可联系vx:llike620 步骤:创建一个MutationObserver实例,并提供一个回调函数。 使用observe方法指定要监控的DOM节点和具体的变动类型。 …

redis+xxl-job初步设计点赞功能

一般情况下点赞业务涉及以下下几个方面: 1.我们肯定要知道一个题目被多少人点过赞,还要知道,每个人他点赞了哪些题目。 2.点赞的业务特性,频繁。用户一多,时时刻刻都在进行点赞,收藏等等处理,如果说我们采取传统的数据库的模式啊,这个交互量是非常大的,很难去抗住这个…

易优CMS友情链接列表标签

{eyou:flink type=all row=30 titlelen=15} <!--type:image图片类型--> <a href={$field.url} {$field.target}><img src={$field.logo} /></a> <!--type:text文本类型--> <a href={$field.url} {$field.target}>{$field.title}</a>…

如何选择PHP和MySQL的版本?

建议优先使用 php5.6 + MySQL5.7 的组合。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。…