Flask框架

Flask框架

我遇到的bug:

无论在怎样修改return值,网页内容都是千年不变。

非常非常恶心:端口被占用的问题

解决方法1:重启电脑

解决方法2:查看那些端口被占用:干掉他

img

Netstat -ano|find “5000”
进入资源监视器,找到相应的pid,将其终止
# 但是有一个问题 治标不治本 再次运行程序 端口依旧被占用

最终解决方法:修改端口

    app.run(
        host='0.0.0.0',
        port=5002,
        debug=True
    )

可完美解决端口被占用的问题

安装虚拟环境

​ 思考:为什么要用虚拟环境呢?

​ 虚拟环境可以为每一个项目安装独立的 Python 库 隔离不同项目之间的 Python 库

​ 版本更新会冲突 二虚拟环境互不影响 (解决维护不同应用程序对应不同版本的问题)

创建一个项目文件夹,然后创建一个虚拟环境。创建完成后项目文件夹中会有一个 venv 文件夹:
创建虚拟环境的 venv 模块
# 创建目录
mkdir myproject
# 切换到目录
cd myproject
# 创建虚拟环境
python -m venv venv
激活虚拟环境
基于window:venv\Scripts\activate
安装框架
pip install flask
新建一个应用
mkdir app
# 创建__init__.py文件	
# 导入类
 from flask import Flask
 # 新建一个程序对象
 app = Flask(__name__)    # __name__ 变量是一个Python预定义的变量,它表示当前调用它的模块的名
字

方法2:

virtualenv的优点:

是不同应用的开发环境独立
环境升级不影响其他应用,也不会影响全局的python环境
它可以防止系统中出现包管理混乱和版本的冲突


pip install virtualenv
virtualenv Mytest
在scripts 目录下
activate.bat 进入虚拟环境
deactivate  退出虚拟环境
为了避免每次输入相对路径
pip install virtualenvwrapper-win
mkvirtualenv MyTest2  创建虚拟环境

workon 查看当前虚拟环境
workon 虚拟环境 进入虚拟环境
deactivate 退出虚拟环境
实例
from flask import Flask

# 表示给对象取一个名
app = Flask(__name__)

# 表示让这个函数与这个url创建个对应关

# 使用 route() 装饰器来告诉 Flask 触发函数的 URL
@app.route('/')
def hello_word():
    """函数最后返回需要在用户浏览器中显示的信息"""
    return 'Hello Word'

if __name__ == '__main__':
    app.run()
    
# 终端里导出 FLASK_APP 环境变量:
可能遇到错误

**出错重启** @app.route('/') @app.route('/index')

参数描述
app = Flask(__name__)    __name__ -------传入的是当前的模块 寻找工程目录
配置说明
config 实际上继承于字典,并且可以像修改字典一样修改它:

app = Flask(__name__)
app.config['DEBUG'] = True

可以使用 dict.update() 方法来一次性更新多个键:
app.config.update(
    DEBUG=True,
    SECRET_KEY='...'
)
调试模式
有两种途径来启用调试模式。一种是直接在应用对象上设置:
app.debug = True
app.run()

另一种是作为 run 方法的一个参数传入:
app.run(debug=True)
注意:和前面的配置是没有区别的
flask获取参数方式:
request.form.get("key", type=str, default=None) 获取表单数据

request.args.get("key") 获取get请求参数

request.values.get("key") 获取所有参数

Flask路由
Flask中的route()装饰器用于将URL绑定到函数。例如:
@app.route(‘/hello’)
def hello_world():
   return ‘hello world’
   		解释说明:
   			URL '/ hello' 规则绑定到hello_world()函数 
   			如果用户访问http:// localhost:5000 / hello URL hello_world()函数的输出将在浏览器中呈现。
   			
Flask 变量规则
向规则参数添加变量部分,可以动态构建URL。此变量部分标记为<variable-name> 
作为关键字参数传递给与规则相关联的函数。
@app.route('/hello/<name>')
def hello_name(name):
   # return 'Hello %s!' % name
   return f'Hello {name}'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2PBGVbsc-1640509942157)(C:\Users\51593\AppData\Roaming\Typora\typora-user-images\image-20210616091009079.png)]

Flask HTTP方法
可以通过为route()装饰器提供方法参数来更改此首选项
先让我们创建一个HTML表单,并使用POST方法将表单数据发送到URL。
模板
    # render_template方法 :渲染模板
    # 参数1: 模板名称  参数n: 传到模板里的数据	

PBGVbsc-1640509942157)]

Flask HTTP方法
可以通过为route()装饰器提供方法参数来更改此首选项
先让我们创建一个HTML表单,并使用POST方法将表单数据发送到URL。
模板
    # render_template方法 :渲染模板
    # 参数1: 模板名称  参数n: 传到模板里的数据	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小 澜 同 学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值