Python+flask框架

本文介绍了Python的Flask框架基础知识,包括静态资源、模板文件的使用,请求和响应处理,路由规则,以及视图函数。还讨论了 ImmutableMultiDict 数据结构,虚拟环境的创建和管理,以及如何返回JSON数据。Flask提供了一种轻量级的方式建立Web应用,连接客户端与服务器。
摘要由CSDN通过智能技术生成


授课:林德尧(泉舟时代-未来城市技术总监)

flask基本框架

 整个hello.py程序脚本就是把前面介绍的三部分合并到个文件中。 程序代码如下示例2-1 hllopy:

一个完整的Flask程序

from flask import Flask
from flask_script import  Manager
from Demoapp.views import bluedemo

app = Flask(__name__)
manager = Manager(app=app)
app.register_blueprint(bluedemo)

if __name__ == '_main__':
    manager.run()
debug是否开启调试模式,开启后修改python的代码会自动重启port启动指定服务器的端口号host主机,默认是127.0.0.1

Tr:要想运行这个程序,请确保激活了你之前创建的虚拟环境,并在其中安装了Flsk现在打开Web别览器,在地址栏中输入h/1/ 00.0000图2-1是浏览精连接到程序后的示意图。

flask知识点

**代码结构**

static静态资源文件
templates模板文件
默认两个都可以直接使用
直接使用相对路径就好模板渲染
render template O
其实也是分为两个过程,加载和道染
静态使用,相当于反向解析
url_ for( 'static filename= mysc.cBs

pintirequesthesi
pinmiequest coo
。pinvequest rensole ada)
#刘览器身份
ptintpequestuse. 3ogen
Tetum需求
类字典的数费构
与字典的区别,可以存在相同的
angsltom都基|mm tetu服橡
mmubeMutiea中数据获取方式
actpunamejiaict gm’unamen
获key对应的所有值
dctgetuvamne
Response
服务器返回会始客户端的数器
由程序员创建,ABRasporo时家
1.真接返同Response对像
2.通过maks, response (aia.codey
code状杰网
3返区文本内容,状志码
4.避回楼板(本质和一样
重定向
readieal)
utor教名数albei

route规则
写法;
<converter: variable name>
converter类型
string
接收任何没有斜杠()的文件(默认)
int接收整型
float
接收浮点型
path
接收路径,可接收斜线(")
uuid
只接受uuid字符串,唯码,-种生成规则
any
可以同时指定多种路径,进行限定I
和枚举,集合的意思差不s
@app.route(any/<any(a,.f):an>*)
def any (any)
print(an)

  1. Request
  2. Response
    。视图函数返回接收两种类型

    Response对象

    字符串
    ●针对字符串会帮我们包装成Response
    。返回内容
    返回的字符串

    render_ emplate
    。添加第二个参数,可以控制返回的状态码
    数据正常,返回错误状态码
    make_ response
    制作一个响应进行返回
    Response
    直接创建Response进行返回
    其实最终返回的都是Response对象
    返回JSON
    。 jsonify将数据格式化为json格式,同时设置返回类型为applicatinjson
    ●json.dumps将数据格式化为json格式,没有设返回的数据类型,默认类型早textcml
@app.route(lrequest', Gethods="GET])
def request1():
print(request)
print(type(request))
print(request.method)
print(request.data)
# arguments歌数tget请求参数,
print(request.args)
# post相关请求都会有数据
print(request.form)

ImmutableMultiDict
类似字典的数据结构
与字典的区别,可以存在相同的键
args和form都是ImmutableMultiDict的对象
ImmutableMultiDict中数据获取方式
dict"uname’]或dict.get(‘uname’)
获取指定key对应的所有值
dict.getlistuname’)

Response
服务器返回会给客户端的数据
由程序员创建,返回Response对象
1.直接返回Response对象
2.通过make_ response (data,code)
-data返回的数据内容

  • code状态码
    3.返回文本内容,状态码
    4.返回模板(本质和3-样)
    重定向
    redirect()
    urt for(函数名’,参数=value)
demo1
@app.route("/response)
def resp():
result= render_ template('demo03.htm')
print(result)
print(type(result))
returm'人工智能,403
demo2
response = make_ response('<h2> 实践操作</h2>', 404)
response = Response("啦啦啦德玛西亚,status=606) #跟上面-样
print(response)
print(type(response))
return response
@app.route('request", methods=['GET')
def request1():
print(request)
print(type(request)
print(request.method)
print(request.data)
# arguments歌数↑get请求参数,
print(request.args)
# post相关请求都会有数据
print(request.form)
print(request.files)
print(request.cookies)
# print(request.remote_ addr)
#浏览器身份
print(request.user_ agent)
return请求
methods='GET, 'POST; 'DELETE]
@app.routet(/rule" .methods='GET,POST])
def hello():
print(request
PythonFlask 框架结合可以轻松地搭建数据可视化网站。Flask 提供了轻量级 web 开发的基础,而 Python 的数据科学库如 Matplotlib、Seaborn 或 Plotly 可以用于生成各种图表。以下是创建这样一个网站的一般步骤: 1. 安装所需库:首先安装 Flask(`pip install flask`)、Jinja2(模板引擎)以及数据可视化库,比如 Matplotlib 或 Plotly (`pip install matplotlib plotly`)。 2. 设计基本结构:创建一个简单的 Flask 应用程序,初始化应用并设置路由。例如,创建一个 `/plots` 路由用于接收和显示数据。 ```python from flask import Flask, render_template, request import matplotlib.pyplot as plt app = Flask(__name__) @app.route('/') def home(): return render_template('home.html') @app.route('/plots', methods=['POST']) def display_plot(): data = request.form.get('data') # 这里处理数据并绘制图表 fig, ax = plt.subplots() ax.plot(data) img_data = io.BytesIO() # 图片转字节流 plt.savefig(img_data, format='png') img_data.seek(0) # 将指针移到起始位置 return send_file(img_data, mimetype='image/png', as_attachment=True, attachment_filename='plot.png') ``` 3. 创建HTML模板:在 templates 文件夹下创建 `home.html`,用于展示输入框让用户上传数据,并显示初步的界面: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Data Visualization</title> </head> <body> <form action="/plots" method="post" enctype="multipart/form-data"> <input type="text" name="data" placeholder="Enter your data separated by commas..."> <input type="submit" value="Plot Data"> </form> {% if plot %} <img src="{{ url_for('static', filename='plot.png') }}" alt="Generated Plot"> {% endif %} </body> </html> ``` 4. 部署应用:将应用程序打包到服务器上,可以是本地开发服务器(如 Gunicorn)或部署到云平台(如 Heroku)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值