首页 > 其他分享 >Flask学习笔记(一)-最小实例+路由

Flask学习笔记(一)-最小实例+路由

时间:2022-09-20 00:11:07浏览次数:86  
标签:__ return Flask app book 实例 route 路由

一、Flask说明

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

二、使用步骤

Flask 环境
环境搭建如下(示例):

1.推荐使用虚拟环境
virtualenv -p [python安装路径] [虚拟环境名]
windows就用where python找安装路径,linux用whereis python3
2.虚拟环境搭建好了就下载flask包
pip3 install flask
觉得官网慢就在后面加 -i [国内源]

三、最小的flask应用实例

from flask import Flask
app = Flask(__name__)


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


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

1、将代码保存为app.py文件,然后使用python命令运行该脚本

* Running on http://127.0.0.1:5000
Press CTRL+C to quit

2.打开浏览器访问http://127.0.0.1:5000/,浏览页面上将出现Hello World!。

3、端口号默认使用5000, 你也可以改成其他端口号,很随意,只要不超过65535即可,但是要注意,不要选择那些已经被其他服务使用的端口号,否则会报错

上面的服务,我们可以修改成

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=1122)

4、自动加载技术--reload(自动加载技术会监测项目里文件的修改情况,一旦发现文件有修改,就会重新加载这个文件,相当于重新import这个模块,这样,你的每一次改动都会在保存后生效而不需要你重启服务)

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

四、Flask路由

不同的请求被路由到不同处理函数上,这个函数称之为视图。路由保存了URL和处理函数之间的映射关系,映射关系的建立是通过route装饰器完成的

转换器说明
int 接受整数
float 接受浮点数
path 接受带斜线的path
from flask import Flask,request

app=Flask(__name__)

@app.route('/hello')
def hello_world():
    return  "hello"

@app.route('/books')
def book():
    return  "books"
#转换成int类型
@app.route('/book/<int:id>/price')
def price(id):
    return str(id)

# 不指定转换器
@app.route('/book/<name>/author')
def author(name):
    return name
#转换成float类型
@app.route('/book/price-ge/<float:price>')
def books_by_price(price):
    return str(price)

#转换成path(接路径)
@app.route('/book/<path:book_info>')
def books_by_path(book_info):
    return book_info

#设置get或者post方法
@app.route('/users',methods=['CET','POST'])
def users():
    if request.method=='GET':
        return 'get'
    if request.method=='POST':
        return 'post'
    return 'ok'

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

启动服务,一次在浏览器里访问下面的URL来体会转换器的作用

  1. http://127.0.0.1:5000/book/python/author
  2. http://127.0.0.1:5000/book/13/price
  3. http://127.0.0.1:5000/book/price-ge/22.3
  4. http://127.0.0.1:5000/book/2019/09/sales
  5. http://127.0.0.1:5000/users

设置method

http协议中,有很多种请求方法,关于这方面的知识,

一个URL,我们可以使用不同的方法来请求,在创建路由规则时,我们可以指定这个URL支持哪些请求方法

@app.route('/users', methods=['GET', 'POST'])
def users():
    return 'ok'

在route装饰器中设置methods,如果不设置该参数,则默认支持GET方法。

  

 

标签:__,return,Flask,app,book,实例,route,路由
From: https://www.cnblogs.com/xfbk/p/16709638.html

相关文章

  • java中的类实例化机制
    定义一个Pet类publicclassPet{publicStringname;publicintage;publicvoidshoot(){System.out.println("叫~~~");}}......
  • 使用J2EE 登录实例开发
    我们先了解下Servlet的生命周期Servlet部署在容器里,其生命周期由容器管理。概括为以下几个阶段:1)容器加载Servlet类。当第一次有Web客户请求Servlet服务或当W......
  • 19. [实例]抓取网络照片
    1.前言本节编写一个快速下载照片的程序,通过百度图片下载您想要的前60张图片,并将其保存至相应的目录。本节实战案例是上一节《PythonRequest库安装和使用》图片下载案......
  • vue3中vuex使用实例
    通过脚手架创建项目会自动创建store/index.js1.vuex基本结构import{createStore}from'vuex'exportdefaultcreateStore({//全局的状态初始值state:{},......
  • ubuntu 添加/删除路由,traceroute
    路由addrouteiprouteadd{NETWORK/MASK}via{GATEWAYIP}iprouteadd{NETWORK/MASK}dev{DEVICE}iprouteadddefault{NETWORK/MASK}dev{DEVICE}iproutea......
  • 实例-rust-延迟5秒锁屏
    main.rs#![windows_subsystem="windows"]usestd::process::Command;usestd::os::windows::process::CommandExt;usestd::thread::sleep;usestd::time::Duration......
  • ckeditor粘贴word文档图片的实例解析.
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘......
  • 实例-rust-打开系统信息
    main.rs#![windows_subsystem="windows"]usestd::process::Command;usestd::os::windows::process::CommandExt;fnmain(){letoutput=ifcfg!(target_o......
  • 实例-rust-锁屏
    main.rs#![windows_subsystem="windows"]usestd::process::Command;usestd::os::windows::process::CommandExt;fnmain(){letoutput=ifcfg!(target_o......
  • ckeditor粘贴word文档图片的实例
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......