【Python】快速上手 Flask

【Python】快速上手 Flask



1. 基本使用

pip install flask

from flask import Flask
app = Flask(__name__)

@app.route('/flask')
def hello_flask():
   return 'Hello Flask'

app.run()

2. Flask 路由/重定向

2.1 Flask 路由

这两个规则看起来类似,但在第二个规则中,使用斜杠(/)。因此,它成为一个规范的URL,使用 /python/python/ 返回相同的内容

但是,如果是第一个规则,/flask/ URL会产生 404 Not Found 页面。

from flask import Flask
app = Flask(__name__)

@app.route('/flask')
def hello_flask():
   return 'Hello Flask'

@app.route('/python/')
def hello_python():
   return 'Hello Python'

app.run(host="0.0.0.0",port=8888,debug=True)

2.2 重定向(redirect)

from flask import Flask, redirect

app = Flask(__name__)

@app.route('/index')
def index():
    return redirect('https://baidu.com')

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

3. 变量规则

转换器描述
int整型
float浮点型
path接受用作目录分隔符的斜杠
string默认,字符串
from flask import Flask, make_response, request  # 注意需导入 make_response

app = Flask(__name__)


# <传参>
@app.route('/home/<params>')
# 函数要记得去接收参数
def home(params):
    return '传入的参数: {}'.format(params)


# http://127.0.0.1:8888/home/123

# 如果需要限制传入参数的类型,可以使用转换器
@app.route('/count/<int:number>')
def count(number):
    return '传入的数字加10 : {}'.format(number + 10)


@app.route('/float/<float:num>')
def count_float(num):
    return '传入的数字加10.12 : {}'.format(num + 10.12)



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

4. Flask HTTP方法

默认情况下,Flask路由响应GET请求。但是,可以通过为route()装饰器提供方法参数来更改此首选项。

方法描述
GET以未加密的形式将数据发送到服务器。最常见的方法。
POST用于将HTML表单数据发送到服务器。POST方法接收的数据不由服务器缓存。
DELETE删除由URL给出的目标资源的所有当前表示。
PUT用上传的内容替换目标资源的所有当前表示。
HEAD和GET方法相同,但没有响应体。
from flask import Flask, make_response, request  # 注意需导入 make_response

app = Flask(__name__)


@app.route('/get_request', methods=['GET'])
def get_request():
    return 'GET请求'


@app.route('/post_request', methods=['POST'])
def post_request():
    return 'POST请求'


@app.route('/delete_request', methods=['DELETE'])
def delete_request():
    return 'DELETE请求'


@app.route('/put_request', methods=['PUT'])
def put_request():
    return 'PUT请求'


@app.route('/head_request', methods=['HEAD'])
def head_request():
    return 'HEAD请求'


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

举个例子

from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route('/')
def index():
    return '欢迎来到主页'


@app.route('/login', methods=['POST'])
def login():
    my_json = request.get_json()
    user = my_json.get('user')
    password = my_json.get('password')
    if user == 'jack' and password == '123456':
        # 前端和后端统一请求和返回的数据格式,返回json格式需要导入jsonify这个包
        # return jsonify({
        #     "token": "sdohaohsdo",
        #     "birthday": "2002-4-16"
        # })
        return jsonify(token="sdohaohsdo", birthdat="2002-4-16")


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

5. Cookie

Cookie以文本文件的形式存储在客户端的计算机上。其目的是记住和跟踪与客户使用相关的数据,以获得更好的访问者体验和网站统计信息。

设置cookie

默认有效期是临时cookie,浏览器关闭就失效,可以通过 max_age 设置有效期, 单位是秒

resp = make_response("success")   # 设置响应体
resp.set_cookie("username", "username", max_age=1000)

获取cookie

通过request.cookies的方式, 返回的是一个字典

c = request.cookies.get("username")

删除cookie

这里的删除只是让cookie过期,并不是直接删除cookie

resp = make_response("del success")  # 设置响应体
resp.delete_cookie("username")
from flask import Flask, make_response, request  # 注意需导入 make_response

app = Flask(__name__)


@app.route('/set_cookie')
def set_cookie():
    res = make_response('set success')
    res.set_cookie('username', 'jack', max_age=3600)
    return res


@app.route('/get_cookie')
def get_cookie():
    cookie = request.cookies.get('username')
    return cookie


@app.route('/del_cookie')
def del_cookie():
    res = make_response('del success')
    res.delete_cookie('username')
    return res

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

6. Session

与Cookie不同,Session(会话)数据存储在服务器上。会话是客户端登录到服务器并注销服务器的时间间隔。需要在该会话中保存的数据会存储在服务器上的临时目录中。

为每个客户端的会话分配会话ID。会话数据存储在cookie的顶部,服务器以加密方式对其进行签名。对于此加密,Flask应用程序需要一个定义的SECRET_KEY

Session对象也是一个字典对象,包含会话变量和关联值的键值对。

设置密钥

app.secret_key = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj'

设置username 会话变量

Session['username'] = 'admin'

要释放会话变量,请使用pop()方法

Session.pop('username',None)

一个简单的登录和退出登录的案例

from flask import Flask, request, session, jsonify, redirect

app = Flask(__name__)
# 记得设置密钥,不然会报错
app.secret_key = 'asdasdasdasdasdasd'


@app.route('/login', methods=['POST'])
def login():
    _json = request.get_json()
    username = _json.get('username')
    password = _json.get('password')
    if not all([username, password]):
        return '缺少参数'

    if username == 'jack' and password == '123456':
        # 设置登录状态,在会话中定义一个标识,要导入session
        session['token'] = 'asdasd'
        return jsonify(msg="登录成功")
    else:
        return josnify("账号或密码错误,请重新登录!")


@app.route('/logout', methods=['GET'])
def logout():
    # 清空会话
    session.pop('token', None)
    redirect('/checklogin')
    return jsonify(msg="退出成功")


@app.route('/checklogin', methods=['GET'])
def checklogin():
    flag = session.get('token')
    if flag:
        return jsonify(msg='已经登录')
    else:
        return jsonify(msg='请登录')

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

总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据太大 网盘下载 01 1.01爬虫说明.mp4 02 1.02爬虫技术库及反爬说明.mp4 03 1.03百度搜索及文件下载.mp4 04 1.04百度翻译之urllib的POST请求.mp4 05 1.05复杂的GET请求多页数据.mp4 06 1.06urllib的build_opener及handlers.mp4 07 1.07上下文扩展和Dao设计.mp4 08 2.01回顾知识点.mp4 09 2.02requests各方法及参数讲解.mp4 10 2.03requests的请求实战及Response对象.mp4 11 2.04xpath解析的应用.mp4 12 2.05古诗文网的爬虫.mp4 13 2.06request的session及图片验证码处理.mp4 14 3.01回顾知识点.mp4 15 3.02封装ElasticSearch操作的SDK.mp4 16 3.03re正则解析站长之家数据.mp4 17 3.04设计多任务爬虫框架.mp4 18 3.05进程_线程实现多任务爬虫.mp4 19 3.06bs4爬虫meinv网.mp4 20 4.01回顾知识点.mp4 21 4.02Flask实现文件上传服务.mp4 22 4.03设计协程的爬虫框架.mp4 23 4.04协程实现的美女网爬虫.mp4 24 4.05解析zhaopin网的所有城市和初始使用selenium.mp4 25 4.06Selenium爬取zhaopin.mp4 26 4.07说明window_handlers.mp4 27 4.08Selenium爬取百聘网.mp4 28 5.01回顾知识点.mp4 29 5.02chrome-headleass应用.mp4 30 5.03docker启动splash服务.mp4 31 5.04扩展Docker搭建私有仓库.mp4 32 5.05扩展VM安装ubuntu-server.mp4 33 5.06扩展远程连接server及免密登录.mp4 34 5.07单元测试及测试套件.mp4 35 6.01回顾与总结上周知识点.mp4 36 6.02日志模块的应用.mp4 37 6.03安装scrapy的说明.mp4 38 6.04scrapy架构说明.mp4 39 6.05scrapy指令.mp4 40 6.06scrapy的Response及数据解析.mp4 41 7.01回顾知识点.mp4 42 7.02Item应用.mp4 43 7.03pipeline处理_1.mp4 44 7.04定量爬虫及中间件说明.mp4 45 7.05下载中间件的方法说明.mp4 46 7.06下载中间件的Cookies.mp4 47 7.07crawlspider规则爬虫.mp4 48 8.01回顾知识点.mp4 49 8.02强化规则爬虫.mp4 50 8.03图片管道的应用.mp4 51 8.04说明自定义图片管道.mp4 52 8.05scrapy中日志记录器.mp4 53 8.06扩展解释器的excepthook.mp4 54 8.07自定义Selenium下载中间件.mp4 55 9.01回顾知识点.mp4 56 9.02分布式爬虫.mp4 57 9.03爬虫项目完整调试.mp4 58 9.04Linux云服务器部署爬虫.mp4 59 9.05scrapyd部署爬虫.mp4 60 9.06docker部署爬虫项目.mp4 61 9.07crontab.mp4 62 10.01回顾知识点.mp4 63 10.02MongoDB的基本操作.mp4 64 10.03总结mongodb.mp4 65 10.04Mongo数据存储及Shell自动部署.mp4 课件+代码 .zip
### 回答1: Python Flask是一个轻量级Web应用框架,它基于Werkzeug和Jinja 2。Flask提供了很多有用的工具和库,帮助我们快速开发Web应用程序。Flask框架是一个“微型”的框架,它不会强制执行任何特定的目录结构或项目结构,因此你可以根据自己的需求对其进行自定义。 使用Flask框架,你可以轻松地创建RESTful API,并处理HTTP请求和响应。Flask还提供了一个简单易用的模板引擎Jinja2,用于渲染HTML模板。 下面是一个简单的Flask应用程序的示例: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 这个应用程序创建了一个名为`app`的Flask实例,并定义了一个路由函数`hello()`。当用户访问应用程序的根URL时,将调用`hello()`函数并返回`Hello, World!`。最后,`app.run()`启动了Flask应用程序。 ### 回答2: Python Flask是一个基于Python的轻量级Web应用框架。它被广泛应用于Web开发领域,特点是简洁、灵活和易于学习。 Python Flask框架提供了丰富的功能和扩展性,可以支持各种类型的Web应用开发,并且可以与其他Python库和工具进行无缝集成,如数据库、模板引擎、用户验证等。使用Python Flask可以轻松构建RESTful API、社交网络、博客系统等等。 Flask框架遵循了MVC(Model-View-Controller)的软件设计模式,即模型、视图和控制器的分离思想。它的核心思想是简化开发流程,提高开发效率,并且有助于进行模块化的开发。 Flask框架的优势还包括: 1. 简单易学:Flask框架的语法简洁清晰,易于上手,适合初学者入门学习。 2. 轻量级:Flask框架没有太多的依赖,可以灵活运行在各种环境中,且运行速度较快。 3. 扩展性强:Flask框架提供了丰富的扩展插件,可以根据需求灵活地添加各种功能。 4. 良好的文档支持:Flask框架拥有完善的官方文档和活跃的社区支持,可以提供详细的教程和示例代码。 总之,Python Flask框架是一个优秀的Web开发框架,非常适合构建中小型的Web应用程序。它的简洁性、灵活性和易学性使得它成为了Python开发者首选的Web框架之一。 ### 回答3: Python Flask是一个用于构建Web应用程序的微型框架。它基于Python语言,轻巧而灵活,适用于开发简单的网站或者API接口。使用Flask,开发者可以快速构建出符合RESTful风格的应用程序。 Flask具有许多优点。首先,它易于上手和学习。相对于其他框架,Flask的代码相对简洁,易于理解和编写。对于新手开发者而言,使用Flask可以快速入门和开发项目。 其次,Flask具有灵活性。开发者可以根据自己的需求和喜好进行定制化配置,并可集成多种扩展和插件。这样就可以根据具体需求添加数据库支持、身份验证、缓存等功能。 此外,Flask也具有强大的社区支持。Flask拥有庞大的用户群体,这意味着可以轻松获取各种帮助和解决方案。在Flask的官方文档以及各种教程、博客等资源中,开发者可以找到各种示例和指导。 另外,Flask还具有优秀的性能。由于Flask是一个轻量级框架,它避免冗余的功能和复杂的特性,因此在处理请求时具有很高的效率。 总而言之,Python Flask是一个简单、灵活且功能强大的框架,适用于开发各种规模的Web应用程序。无论是初学者还是有经验的开发者,都可以通过使用Flask快速、高效地构建出符合需求的Web应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值