Flask最基本示例

2023-05-16

1. app

# coding:utf-8
from flask import Flask, current_app, redirect, url_for

# 创建Flask的应用程序
# __name__表示当前的模块名字
#            模块名:flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)
# app = Flask(__name__,
#             static_url_path='/python',  # 访问静态资源的url前缀,默认值是static
#             static_folder='static',  # 静态文件目录,默认就是static
#             template_folder='templates',  # 模板文件的目录,默认是templates
#             )
# 配置参数的使用方式
# 1.使用配置文件
# app.config.from_pyfile("config.cfg")

# 2.使用对象配置参数
# class Config(object):
#     DEBUG = True
#     ITCAST = "python" # 自用参数
# app.config.from_object(Config)

# 3.直接操作config的字典对象
# app.config["DEBUG"] = True

# 以装饰器形式绑定路由
@app.route('/')
def hello_world():
    # 读取配置参数
    # 1.直接从全局对象app的config字典中取值
    # print (app.config.get('ITCAST',''))
    # 2.通过current_app获取参数
    # print (current_app.config.get("ITCAST"))
    return 'Hello World!'


@app.route("/login")
def login():
    # url = "/"
    # 使用url_for的函数,通过视图函数的名字找到视图对应的url函数
    url = url_for("hello_world")
    return redirect(url)


if __name__ == '__main__':
    # 通过url_map可以查看整个flask中的路由信息
    print (app.url_map)
    # 启动flask程序
    app.run(debug=True)
    # app.run(host="0.0.0.0", port=5000)

2. url

# coding:utf-8
from flask import Flask, current_app, redirect, url_for

# 创建Flask的应用程序
# __name__表示当前的模块名字
#           模块名,flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)

# 以装饰器形式绑定路由
@app.route('/')
def hello_world():
    return 'Hello World!'

# 通过method限定访问方式
@app.route("/post_only", methods=["GET","POST"])
def post_only():
    return "post only page"

# 给同一个url添加不同视图函数,利用method区别
@app.route("/hello", methods=["POST"])
def hello():
    return "hello 1"

@app.route("/hello", methods=["GET"])
def hello2():
    return "hello 2"

# 给同一个函数添加多个url
@app.route("/hi1")
@app.route("/hi2")
def hi():
    return "hi page"

@app.route("/login")
def login():
    # url = "/"
    # 使用url_for的函数,通过视图函数的名字找到视图对应的url函数
    url = url_for("hello_world")
    return redirect(url)



if __name__ == '__main__':
    # 通过url_map可以查看整个flask中的路由信息
    print (app.url_map)
    # 启动flask程序
    app.run(debug=True)
    # app.run(host="0.0.0.0", port=5000)

3. request

# -- coding: utf-8 --
from flask import Flask, request


app = Flask(__name__)


# 接口
# 127.0.0.1:5000/index?city=shenzhen&country=china 查询字符串QueryString
@app.route("/index", methods=["GET", "POST"])
def index():
    # request中包含了前端发送过来的所有请求数据
    # form和data是用来提取请求体中的参数
    # 通过request.form可以直接提取请求体中的表单格式的数据,是一个类字典的对象
    # 通过get方法只能拿到多个同名参数的第一个
    age = request.form.get("age", "23")
    name = request.form.get("name", "zhangsan")
    # args是用来提取url中的参数(查询字符串)
    city = request.args.get("city")
    # 通过getlist方法能拿到多个同名参数
    name_list = request.form.getlist("name")
    print (request.data)
    return "hello name=%s, age=%s, city=%s, name=%s" % (name, age, city, name_list)

# 表单格式数据
# city=value&age=value&gender=value
# file类型,必须给form标签添加 enctype="multipart/form-data"


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

4. response

# -- coding: utf-8 --

from flask import Flask, request, abort, Response, make_response

app = Flask(__name__)


@app.route("/index", methods=["GET"])
def index():
    # 1.使用元祖,返回自定义的响应信息
    #         响应体      状态码             响应头
    # return "index page", 400, [("Itcast", "python",), ("City", "shenzhen")]
    # return "index page", "666 itcast status", {"Itcast": "python", "City": "shenzhen"}
    # return "index page", "666 itcast status"

    # 2.使用make_response来构造响应信息
    resp = make_response("index page 2")
    resp.status = "999 itcast" # 设置状态码
    resp.headers['city'] = "sz" # 设置响应头
    return resp


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


4. upload_file

# -- coding: utf-8 --

from flask import Flask, request

app = Flask(__name__)


@app.route("/upload", methods=["POST"])
def upload():
    """接收前端传送过来的文件"""
    file_obj = request.files.get("pic")
    if file_obj is None:
        # 表示没有发送文件
        return "未上传文件"
    # 将文件保存到本地
    # 1.创建一个文件
    # with open("./demo.jpg","wb") as f:
    #     # 2.向文件内部写内容
    #     data = file_obj.read()
    #     f.write(data)

    # 直接使用上传的文件对象保存
    file_obj.save("./demo1.jpg")
    return "上传成功"


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

5. cookie

# -- coding: utf-8 --
import json

from flask import Flask, make_response, request

app = Flask(__name__)


@app.route("/set_cookie")
def set_cookie():
    resp = make_response("success")
    # 设置cookie,默认有效期是临时cookie,浏览器关闭就失效
    resp.set_cookie("Itcast", "Python")
    resp.set_cookie("Itcast1", "Python1")
    # max_age设置有效期,单位:秒
    resp.set_cookie("Itcast2", "Python2", max_age=3600)
    return resp

@app.route("/get_cookie")
def get_cookie():
    c = request.cookies.get("Itcast2")
    return c

@app.route("/delete_cookie")
def delete_cookie():
    resp = make_response("del success")
    resp.delete_cookie("Itcast2")
    return resp


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

6. session

# -- coding: utf-8 --
import json

from flask import Flask, session

# session_dict = {
#     "1":{
#
#     },
#     "2":{
#
#     }
# }

app = Flask(__name__)
# flask的session需要用到的秘钥字符串
app.config["SECRET_KEY"] = "SFJKDFSSDKJEGF"

# flask默认把session保存到了cookie中

@app.route("/login")
def login():
    # global session_dict
    # session_dict["1"][] =
    # 设置session数据
    session["name"] = "python"
    session["mobile"] = "18697118727"
    return "login success"


@app.route("/index")
def index():
    # 获取session
    name = session.get("name")
    return "hello %s" % name


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

7. templates

# -- coding: utf-8 --
import json

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/index")
def delete_cookie():
    data = {
        "name": "python",
        "age": 18,
        "my_dict": {"city": "sz"},
        "my_list": [1, 2, 3, 4, 5],
        "my_int": 0
    }
    return render_template("index.html", **data)


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

8. jsonify

# -- coding: utf-8 --
import json

from flask import Flask, jsonify

app = Flask(__name__)


@app.route("/index", methods=["GET"])
def index():
    # json就是字符串
    data = {
        "name": "python",
        "age": 18
    }
    # json_str = json.dumps(data)
    # return json_str, 200, {"Content-Type": "application/json"}
    # jsonify帮助转为json数据,并设置响应头 Content-Type为 application/json
    # return jsonify(data)
    return jsonify(city="sz", country="china")


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

9. abort

# -- coding: utf-8 --

from flask import Flask, request, abort, Response

app = Flask(__name__)


@app.route("/login", methods=["GET"])
def login():
    # uname = request.form.get("uname")
    # upwd = request.form.get("upwd")
    uname = ""
    upwd = ""
    if uname != "zhangsan" and upwd != "admin":
        # 使用abort函数可以立即终止视图函数的执行
        # 并可以返回给前端特定的信息
        # 1.传递状态码信息,必须是标准的http状态码
        abort(404)
        # 2.传递响应体信息
        # resp = Response("login failed")
        # abort(resp)

    return "login success"


# 定义错误处理方法
@app.errorhandler(404)
def handle_404_error(err):
    """自定义的处理错误方法"""
    # 这个函数的返回值会是前端用户看到的最终结果
    return u"出现了404错误,错误信息:%s" % err


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


10. converter

# -*- coding:utf-8 -*-

from flask import Flask, current_app, redirect, url_for
from werkzeug.routing import BaseConverter

# 创建Flask的应用程序
# __name__表示当前的模块名字
#           模块名,flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)

# 转换器
# 127.0.0.1:5000/goods/123
# @app.route("/goods/<int:goods_id>")
@app.route("/goods/<goods_id>") # 不加转换器类型,默认是普通字符串规则(除了/的字符)
def goods(goods_id):
    """定义的视图函数"""
    return "goods detail page %s" % goods_id

# 1.定义自己的转换器
class MobileConverter(BaseConverter):
    def __init__(self, url_map):
        super(MobileConverter,self).__init__(url_map)
        self.regex = r"1[34578]\d{9}"

# 万能正则表达式
class RegexConverter(BaseConverter):
    """自定义转换器类"""
    def __init__(self, url_map, regex):
        # 调用父类的初始化方法
        super(RegexConverter,self).__init__(url_map)
        # 将正则表达式的参数保存到对象属性中,flask会使用这个属性来进行路由的正则匹配
        self.regex = regex

    def to_python(self, value):
        print ("to_pathon方法被调用")
        # return "abc"
        # value是在路径进行正则匹配的时候提取的信息
        return value

    def to_url(self, value):
        """使用url_for的方法的时候被调用"""
        return value


# 2.将自定义的转换器添加到flask的应用中
app.url_map.converters["re"] = RegexConverter
app.url_map.converters["mobile"] = MobileConverter

# 127.0.0.1:5000/send/12334566743
# @app.route("/send/<mobile:mobile_num>")
@app.route("/send/<re(r'1[34578]\d{9}'):mobile_num>")
def send_sms(mobile_num):
    return "send sms to %s" % mobile_num

@app.route("/index")
def index():
    # /send/18912345678
    url = url_for("send_sms",mobile_num="18912345678")
    return redirect(url)

if __name__ == '__main__':
    # 通过url_map可以查看整个flask中的路由信息
    print (app.url_map)
    # 启动flask程序
    app.run(debug=True)
    # app.run(host="0.0.0.0", port=5000)

11. SQLAlchemy

# -- coding: utf-8 --
from flask import Flask, render_template, request, redirect, url_for, jsonify
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
import pymysql
from flask_sqlalchemy import SQLAlchemy
pymysql.install_as_MySQLdb()

app = Flask(__name__)


class Config(object):
    # sqlalchemy的配置参数
    SQLALCHEMY_DATABASE_URI = "mysql://root:admin123@localhost:3306/author_book"
    # 设置sqlalchemy自动跟踪数据库
    SQLALCHEMY_TRACK_MODIFICATIONS = True

    SECRET_KEY = "DFDSGFGdsgfsgsg"

# 读取配置文件
app.config.from_object(Config)

# 创建sqlalchemy的数据库链接对象
db = SQLAlchemy(app)

# 创建flask脚本管理工具
manager = Manager(app)

# 创建数据库迁移工具对象
Migrate(app,db)

# 向manager对象中添加数据库操作命令
manager.add_command('db', MigrateCommand)


# 定义数据库的模型
class Author(db.Model):
    """作者"""
    __tablename__ = "tbl_authors"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32), unique=True)
    email = db.Column(db.String(32), unique=True)
    books = db.relationship('Book', backref="author")

    def __repr__(self):
        return '<Author %r>' % self.name


class Book(db.Model):
    """书籍"""
    __tablename__ = "tbl_books"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64),unique=True)
    author_id = db.Column(db.Integer, db.ForeignKey('tbl_authors.id'))

    def __repr__(self):
        return '<Book %r>' % self.name


# 创建表单模型类
class AuthorBookForm(FlaskForm):
    """作者数据表单模型类"""
    author_name = StringField(label=u"作者", validators=[DataRequired(u"作者必填")])
    book_name = StringField(label=u"书籍", validators=[DataRequired(u"书籍必填")])
    submit = SubmitField(label=u"保存")


@app.route("/", methods=['POST', 'GET'])
def index():
    # 创建表单对象
    form = AuthorBookForm()
    # 查询数据库
    if form.validate_on_submit():
        # 验证表单成功
        author_name = form.author_name.data
        book_name = form.book_name.data
        # 保存数据库
        author = Author.query.filter_by(name=author_name).first()
        if not author:
            author = Author(name=author_name)
            db.session.add(author)
            db.session.commit()
        book = Book.query.filter_by(name=book_name).first()
        if not book:
            book = Book(name=book_name, author_id=author.id)
            # book = Book(name=book_name, author_id=author)
            db.session.add(book)
            db.session.commit()

    authors = Author.query.all()
    return render_template("author_book.html", authors=authors, form=form)


# /delete_book?book_id=xxx
@app.route("/delete_book", methods=['POST'])
def delete_book():
    """删除数据"""
    # 提取参数(如果前端发生的请求体数据是json格式,get_json会解析成字典)
    # get_json要求前端传送的数据的Content-Type: application/json
    req_dict = request.get_json()
    book_id = req_dict.get("book_id")

    # 删除数据
    book = Book.query.get(book_id)
    db.session.delete(book)
    db.session.commit()

    return jsonify(code=0, message='OK')


if __name__ == "__main__":
    # 通过manager.run启动
    manager.run()
    # app.run(debug=True)
    # db.drop_all()
    # db.create_all()
    #
    # au_xi = Author(name=u"我吃西红柿", email="xihongshi@163.com")
    # au_qian = Author(name=u"萧潜", email="xiaoqian@126.com")
    # au_san = Author(name=u"唐家三少", email="sanshao@163.com")
    # db.session.add_all([au_xi, au_qian, au_san])
    # db.session.commit()
    #
    # bk_xi = Book(name=u"吞噬星空", author_id=au_xi.id)
    # bk_xi2 = Book(name=u"寸芒", author_id=au_qian.id)
    # bk_qian = Book(name=u"飘渺之旅", author_id=au_qian.id)
    # bk_san = Book(name=u"冰火魔厨", author_id=au_san.id)
    # db.session.add_all([bk_xi, bk_xi2, bk_qian, bk_san])
    # db.session.commit()

# 1、生成迁移文件
python 模块名.py db init

# 2、检查更新迁移文件,-m参数信息可省略不写
python 模块名.py db migrate -m "备注信息"

# 3、更新到数据库
python 模块名.py db upgrade

# 查询历史操作
python 模块名.py db history
# 回退操作
python 模块名.py db downgrade 要退回版本状态码

12. 模块测试

登录

# -- coding: utf-8 --

from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route("/login", methods=["POST"])
def login():
    # 接收参数
    uname = request.form.get("uname")
    upwd = request.form.get("upwd")

    # 判断参数
    if not all([uname, upwd]):
        resp = {
            "code": 1,
            "message": "invalid params"
        }
        return jsonify(resp)
    if uname == "admin" and upwd == "python":
        resp = {
            "code": 0,
            "message": "login success"
        }
        return jsonify(resp)
    else:
        resp = {
            "code": 2,
            "message": "wrong uname or upwd"
        }
        return jsonify(resp)


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

测试

# -- coding: utf-8 --

import unittest
from login import app
import json


class LoginTest(unittest.TestCase):
    """构造单元测试案例"""
    """构造单元测试案例"""
    def setUp(self):
        """在测试之前,先被执行"""
        # 创建进行web请求的客户端,使用flask提供的
		# 设置flask工作在测试模式下(以下两种方式2选1)
		# app.config['TESTING'] = True
		app.testing = True
        self.client = app.test_client()

    def test_empty_user_name_password(self):
        """测试用户名密码不完整的情况"""
        # 测试用户名和密码都不传
        # 利用client客户端模拟发送请求
        ret = self.client.post('/login', data={})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 1)

        # 测试只传密码
        # 利用client客户端模拟发送请求
        ret = self.client.post('/login', data={"upwd": "python"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 1)

        # 测试只传用户名
        # 利用client客户端模拟发送请求
        ret = self.client.post('/login', data={"uname": "admin"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 1)

    def test_wrong_user_name_password(self):
        """测试用户名或密码错误"""
        # 测试用户名和密码都为错
        ret = self.client.post("/login",data={"uname": "iydsff", "upwd": "iughf"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 2)

        # 测试用户名错,密码对
        ret = self.client.post("/login", data={"uname": "iydsff", "upwd": "python"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 2)

        # 测试密码错,用户名对
        ret = self.client.post("/login", data={"uname": "admin", "upwd": "sfdf"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 2)

    def test_wright_user_name_password(self):
        """"测试用户名或密码错误"""
        # 测试用户名和密码都正确
        ret = self.client.post("/login", data={"uname": "admin", "upwd": "python"})
        # ret是视图返回的响应对象,data属性是响应体数据
        resp = ret.data
        # 因为login视图返回的是json字符串
        resp = json.loads(resp)
        # 拿到返回值开始断言测试
        self.assertIn("code", resp)
        self.assertEquals(resp['code'], 0)


if __name__ == "__main__":
    unittest.main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask最基本示例 的相关文章

  • Python Flask 导入未导入模块的错误

    我有一个在 Google App Engine 中运行的 Flask 应用程序 昨天 我部署了应用程序的新版本 其中仅更改了 HTML 样式 它按预期部署 今天 我意识到我没有更改每个相应 HTML 页面的标题 因此我只更改了每个 HTML
  • 如何在使用用户限制资源访问保护的 python eve api 中创建新用户帐户

    我首先使用 python eve 框架创建了一个 Web api 无需身份验证或用户帐户 效果非常好 我现在正在尝试添加身份验证和用户帐户 但遇到了一些困难 我想使用用户限制的资源访问 但是如果资源受到限制 用户如何创建新的用户帐户 我缺少
  • 未找到 Azure Flask 路由

    我正在使用 Visual Studio 创建一个空白的 Flask 应用程序 当我在本地运行该应用程序时 我得到了预期的 hello world 当我发布到 Azure 应用服务时 我得到了这个丑陋的蓝色主页 这不是我制作的 在我的项目中
  • Flask 中的动态导航

    我有一个在 Flask 中工作的非常简单的网站 它全部由 sqlite 数据库提供支持 每个页面都作为页表中的一行存储 其中包含路径 标题 内容等内容 该结构是分层的 其中页面可以有父级 例如 虽然 关于 可能是一个页面 但也可能有 关于
  • 带有 Flask 服务器的面向对象 Python?

    我正在使用 Flask 将一些数据处理代码公开为 Web 服务 我想要一些我的 Flask 函数可以访问的类变量 让我带你看看我被困住的地方 from flask import Flask app Flask name class MySe
  • 在 python -flask -jinja2 模板中迭代多个列表

    我在迭代中遇到问题for loop在 Flask jinja2 模板中的多个列表上 我的代码如下所示 Type RS IDs 1001 1002 msgs Success Success rcs 0 1 return render temp
  • 无法在 Flask 后端提取 React 前端上传的图像文件

    我正在尝试将图像文件 驻留在本地 从我的反应单页前端应用程序发送到我的烧瓶后端 我尝试过但不限于捕获我的内容类型并在前端指示 encType 的一些事情 尽管如此 post请求表明它是成功的 但是 当我记录 requests files r
  • 如何从 Flask 调用另一个 Web 服务 api

    我在 Flask 服务器中使用重定向来调用另一个 Web 服务 api e g app route hello def hello return redirect http google com 网址逻辑上会更改为 google com 但
  • Flask-SQLAlchemy:如何有条件地插入或更新行

    我的应用程序使用 Flask Flask SQLAlchemy Flask WTF 和 Jinja2 的组合 在当前的版本中 我有一个设置表 该表只有一条记录和一个字段 最初该表包含零条记录 我想要实现的是 鉴于数据库中不存在任何条目 则显
  • Flask_dance:如果没有关联用户,则无法获取 OAuth 令牌

    我想将 Flask dance 与我的应用程序一起迁移 以使用户授权使用谷歌和其他社交网络 我收到此错误 Cannot get OAuth token without an associated user 在我在蓝图和 sqlalchemy
  • Nginx 正在向 uWSGI 发出非常旧的请求?

    我看到一种奇怪的情况 Nginx 或 uwsgi 似乎正在建立一个很长的传入请求队列 并在客户端连接超时后很长时间内尝试处理它们 我想理解并停止这种行为 以下是更多信息 My Setup 我的服务器使用 Nginx 通过 Unix 文件套接
  • 使用单个 shell 脚本运行 React 和 Flask

    我构建了一个使用 ReactJS 作为前端和 Flask 作为中间件的应用程序 我可以使用以下命令序列来执行它 npm start cd Equation Solver python m flask run 执行第一个命令后 我必须打开另一
  • 在 AWS Elastic Beanstalk 中部署 Flask 应用程序

    当我部署 Flask 应用程序时 它显示成功 但是当我检索日志时 我看到错误 找不到 Flask 我的需求文件中有烧瓶 任何帮助 Sat Jan 11 06 51 50 503908 2020 error pid 3393 remote 1
  • python virtualenv和flask安装。没有名为flask的模块

    运行基本程序时我不断收到此错误 ImportError No module named flask 这是基本的程序 from flask import Flask app Flask name app route def hello wor
  • 运行迁移时出错:sqlalchemy.exc.CompileError:Postgresql ENUM 类型需要名称

    当我第一次尝试运行升级时遇到此错误 尽管我已经给了它一个 name 属性 但它似乎在性别类型枚举上失败了 有解决办法吗 有什么方法可以查看生成的 SQL 内容吗 这是我的 models py 这是我运行flask ext migrate u
  • Flask Restful 解析器列表字典

    我有一个解析请求列表字典的示例 shopping cart id 23323 qty 10 id 34232 qty 9 id 34232 qty 9 我如何使用flask restful RequestParser解析它 使用这样的东西
  • Python:如何在烧瓶中显示 matplotlib [重复]

    这个问题在这里已经有答案了 我对 Flask 和 Matplotlib 很陌生 我希望能够显示我在某些 html 中生成的简单图表 但我很难弄清楚如何实现 这是我的Python代码 from flask import Flask rende
  • 如何在 Windows 上为“flask run”设置环境变量?

    我刚刚开始学习 Flask 我一直停留在设置 Flask 环境变量上 我不知道如何设置环境变量 每当我使用flask run命令 我遇到以下错误 错误消息 无法找到 Flask 应用程序 您没有提供 FLASK APP 环境变量 并且在当前
  • 从 Flask 中的 S3 返回 PDF

    我正在尝试在 Flask 应用程序的浏览器中返回 PDF 我使用 AWS S3 来存储文件 并使用 boto3 作为与 S3 交互的 SDK 到目前为止我的代码是 s3 boto3 resource s3 aws access key id
  • 在 Flask 中使用 html 运行 python 脚本

    我是 Flask 新手 我试图在单击 html 页面中的按钮时从后台运行 python 脚本 这是我的代码 from flask import from functools import wraps import sqlite3 app F

随机推荐

  • 从数据集CLEVR来看视觉推理的发展

    一 视觉推理的发展 视觉推理 Visual Reasoning 概念的兴起是在Li Fei Fei组提出的 CLEVR 数据集后 xff0c 被大家广泛认识并且越来越多的人开始研究 xff0c 大家提出的各种模型都是为了让机器或者是神经网络
  • Xmanager安装与使用攻略

    文章目录 前言一 工具二 步骤 前言 Xmanager 是一款可以在自己的办公电脑Windows机器下 xff0c 用于远程连接控制服务器Linux UNIX的管理工具 本经验介绍如何在windows上安装xmanager 一 工具 XMa
  • tensorflow的tensor张量如何转化为numpy数组?

    比方说 xff0c a是一个已经定义好的tensor张量 那么直接 xff1a a numpy 即可
  • vnc登录不上解决办法

    备忘 xff01 环境介绍 xff1a ubantu16 04 xff0c 安装了anaconda xff0c QT xff0c cmake xff0c 乱七八糟一堆东西 环境变量也改了很多 xff0c 不知为何会影响vnc桌面的启动 解决
  • js删除数组中的指定对象

    文章目录 实现效果封装工具函数完整demo 实现效果 封装工具函数 思路就是 xff0c 遍历取到每个对象和对应下标 xff0c 通过自定义的函数判断该对象是否删除 xff0c span class token comment 删除数组中指
  • 用OpenCV储存视频时遇到的问题

    用 MJPG 格式储存 34 avi 34 格式时报错 cv2 error OpenCV 3 4 1 io opencv modules videoio src container avi cpp 737 error 215 pos lt
  • debian 10执行提示service: command not found(找不到service命令)解决方法

    debian 10 用 root 执行提示 bash service command not found xff08 找不到 service 命令 xff09 解决方法 问题 想要执行 service xff0c 发现找不到命令 xff0c
  • IAR平台进行编译时常见错误:

    1 IAR编辑时出现如下错误 xff1a Near constant start address 43 size must be less than 错误原因是 xff1a 代码对应的Device 芯片选型错误 解决方法 xff1a 将Ge
  • PHPexcel报出错误‘break‘ not in the ‘loop‘ or ‘switch‘ context

    今天本地改代码改完做测试发现现在的文件中打开是 break 39 not in the 39 loop 39 or 39 switch 39 context 这样的 xff1b 当时一脸懵逼 xff0c 这是一个老项目最近也没动啊怎么回事
  • Linux Centos7 xfsdump文件系统的备份和恢复

    xfs提供了 xfsdump 和 xfsrestore工具 xff0c 协助备份xfs文件系统中的数据 xfsdump按 inode顺序备份一个xfs文件系统 CentOS7默认文件系统是xfs xff0c CentOS6默认文件系统是ex
  • TIM基本定时器——定时

    1 定时器功能 xff1a 定时 输出比较 输入捕获 互补输出 分类 xff1a 基本定时器 xff08 定时 xff09 通用定时器 xff08 定时 输出比较 输入捕获 xff09 高级定时器 xff08 定时 输出比较 输入捕获 互补
  • ubuntu 释放空间的7种简单方法

    从我们的理想中 xff0c 我们无意间暴露了自己的缺陷 让 罗斯唐 Linux系统空间不足 xff1f 您可以通过以下几种方式清理系统 xff0c 释放Ubuntu和其他基于Ubuntu的Linux发行版上的空间 随着时间的流逝 xff0c
  • OpenCV-Python画虚线

    问题背景 使用OpenCV Python处理图像时 xff0c 有函数cv line 函数可以快速画出直线 xff0c 本以为使用该函数修改参数可以快速画出虚线等特殊直线 xff0c 查阅OpenCV文档可以看到 xff0c cv line
  • IP地址分类及其范围

    IP地址分类 xff08 A类 B类 C类 D类 E类 xff09 IP地址由四段组成 xff0c 每个字段是一个字节 xff0c 8位 xff0c 最大值是255 xff0c IP地址由两部分组成 xff0c 即网络地址和主机地址 网络地
  • 在windows下conda换源时,使用conda install 安装库时,出现:Anaconda An HTTP error...的解决方法

    在windows下conda换源时 xff0c 使用conda install 安装库时 xff0c 出现 xff1a Anaconda An HTTP error occurred when trying to retrieve this
  • 华为1288H V5服务器做RAID_超详细图文教程

    目录 一 服务器介绍 二 服务器RAID 三 开始配置RAID 四 多RAID 如有需要 五 检查RAID信息 六 IBMC远程管理 结束 一 服务器介绍 型号 xff1a 华为1288H V5 服务器1U xff1b 图解 xff1a 这
  • VsCode下载,使用国内镜像秒下载

    还在因为vscode官方下载慢而头疼嘛 xff0c 按这个步骤来直接起飞兄弟萌 首先进入vscode官方网站然后选择对应版本下载然后进入浏览器下载页面复制下载链接粘贴到地址栏 将地址中的 stable前换成vscode cdn azure
  • Ubuntu常见问题 | 解压中文乱码问题

    文章目录 环境复现BUG原因解决 环境 Ubuntu16 04LTS 复现 右击 zip压缩文件 左击提取到此处 BUG 解压出来的文件名 文件夹名只要有中文 xff0c 中文就会变成乱码 原因 Windows下的中文编码规则与Linux下
  • 神经网络拟合曲线及讨论

    神经网络拟合曲线及讨论 问题说明 神经网络能否拟合x 2 43 y 2 61 100在第一象限的曲线 xff1f 设计思路 第一象限的曲线方程如下所示 xff1a y 61 100
  • Flask最基本示例

    1 app span class token comment coding utf 8 span span class token keyword from span flask span class token keyword impor