【学习园地】Flask简单网页(一)

admin 2022年8月2日10:30:39安全开发评论3 views2323字阅读7分44秒阅读模式

【学习园地】Flask简单网页(一)
【学习园地】Flask简单网页(一)

【学习园地】Flask简单网页(一)

1

什么是Flask



Flask是一个轻量级可定制网页框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。今天训练营就和大家利用Flask开发一个小网站。

【学习园地】Flask简单网页(一)


2
最简单的示例


在pycharm中安装完Flask后,我们可以写一个最简单的实例


from flask import Flask
app = Flask(__name__)

@app.route('/')def test(): return '这是一个Flask实例'



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


其中app = Flask(__name__)相当于是初始化了一个flask对象。

@app.route('/')def test():    return '这是一个Flask实例'

是建立一个访问的路径并对其中的内容进行声明


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


Flask的入口,启动整个Flask项目,接下来运行下看看

【学习园地】Flask简单网页(一)

Flask已经为我们准备好了端口,现在访问

【学习园地】Flask简单网页(一)

当然可以在app.run()中添加参数来指定端口,比如这样

if __name__ == '__main__':    app.run(port=9234)

接下来我们再生成项目

【学习园地】Flask简单网页(一)

可以发现项目的端口已经变为了9234


3
基本功能


一、显示一个HTML网页

这里我们需要导入Flask下额外的render_template

from flask import Flask, render_template

我们自己制作或者获取一个HTML页面,之后我们建立一个templates文件夹在项目中,默认情况下,Flask会在程序文件夹中的 templates 的子文件夹中搜索模板,这里我们简单写一个HTML页面

<!DOCTYPE html><html><head><meta charset="utf-8"><title>Flask测试</title></head><body>    <h1>大标题</h1>    <p>内容</p></body></html>


之后利用render_template进行打开

@app.route('/')def test():    return render_template('test.html')

看看效果

【学习园地】Flask简单网页(一)


二、开启Debug模式

开启Debug模式对我们进行生产开发非常重要,不再需要手动编译启动项目就可以看见对项目的更改,我们只需要,在run函数下声明debug参数为True即可

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

来测试下,修改了route路径@app.route('/ssw')

可以发现Flask马上对修改进行了重新加载

【学习园地】Flask简单网页(一)

这样我们就不再能访问到刚才的页面了

【学习园地】Flask简单网页(一)


需要按照新的地址进行访问

【学习园地】Flask简单网页(一)

值得注意的是如果Flask在debug模式下重启会启动俩子线程。在数据写入时会重复写入。需要对其方法加锁。


三、Cookie操作

导入make_response,这使得返回的不仅仅是字符串,而是会对返回值进行一些列的封装,变成一个response响应对象

from flask import Flask, render_template, make_response

修改刚才的方法

@app.route('/ssw')def test():    resp = make_response(render_template('test.html'))    resp.set_cookie('Test', 'this is test')    return resp

在进行访问,可以看到我们得到了一个cookie,另外可以通过参数max_age来规定cookie的有效时间

resp.set_cookie('Test', 'this is test', max_age=3321)

其单位是

【学习园地】Flask简单网页(一)


如果想要访问获取cookie那么可以导入request

from flask import Flask, render_template, make_response,request

这里我们建立一个新的路径


@app.route('/cookie')def getcookie():    cookies = request.cookies.get("Test")    return cookies


通过cookies.get可以访问指定key下的cookie值

【学习园地】Flask简单网页(一)

如果想要删除cookie那么可以使用make_response下的方法delete_cookie删除指定key下的cookie值


@app.route('/delcookie')def del_cookie2():    resp = make_response('删除cookie了')    resp.delete_cookie('Test')    return resp


【学习园地】Flask简单网页(一)


4
参考文章


【Flask框架(flask中对cookie的处理(设置cookie、获取cookie、删除cookie))】https://blog.csdn.net/wei18791957243/article/details/85172653





大学生网络安全尖锋训练营

邮箱|[email protected] 
地址|北京市海淀区奥北科技园20号楼5层

【学习园地】Flask简单网页(一)




原文始发于微信公众号(大学生网络安全尖锋训练营):【学习园地】Flask简单网页(一)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月2日10:30:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  【学习园地】Flask简单网页(一) http://cn-sec.com/archives/1215966.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: