【发布时间】:2019-10-15 17:01:00
【问题描述】:
我想使用 Python 创建一个 Web 服务。 服务内容如下。
- 接收来自用户的音乐文件
- 分析收到的文件并创建一个新的音乐文件。 (已经使用python库完成了函数实现。)
- 将新创建的音乐文件输出给用户。
主要目标是分析音乐文件并创建一个新的,为此目的输入和输出音乐文件是次要功能。所以我对创建 Web 服务一无所知,需要帮助来实现此功能。我上网并在一定程度上实现了它,但是我得到了一个我不知道为什么的错误。
我上传了app.py 和__init__.py 的代码。我还上传了目录的结构。看起来需要修复一些东西才能使用控制器内部的功能。我已经在互联网和 YouTube 上搜索了十二个多小时,但我真的不知道。我在控制器目录中创建了一个名为NoteConvertor 和MarcovMatrix 的类。
它会一直运行,直到我转到 http://127.0.0.1:5000/ 并收到一个文件。然后我收到以下错误:
File "C:\Users\K\git\flask\gp\app.py", line 24, in wav_transform
sr, data = scipy.io.wavfile('static/file1.wav')
TypeError: 'module' object is not callable
-gp
|----controller
| MarcovMatrix.py
| MatrixBuilder.py
| NoteConvertor.py
|----static
| style.css
|----templates
| index.html
| upload.html
| wavplay.html
|----__init__.py
|----app.py
app.py
import flask
from flask import Flask, request, render_template
from werkzeug.utils import secure_filename
import scipy
import numpy as np
from scipy import misc
import pysynth as ps
from scipy.io import wavfile
app = Flask(__name__)
@app.route('/')
@app.route("/upload")
def index():
return render_template('index.html')
@app.route('/uploader', methods=['GET', 'POST'])
def wav_transform():
if request.method == 'POST':
f = request.files['file']
f.save(f'static/file1.wav')
sr, data = scipy.io.wavfile('static/file1.wav')
empty_notes = controller.NoteConvertor(data)
notes = empty_notes.convertor()
song = sum(notes, [])
matrix = controller.MarcovMatrix(song)
start_note = ['e4', 4]
random_song = []
for i in range(0, 100):
start_note = matrix.next_note(start_note)
random_song.append(start_note)
ps.make_wav(random_song, fn='static/random.wav')
return render_template('wavplay.html')
if __name__ == '__main__':
app.run(debug = True)
__init__.py
from gp.controller import MarcovMatrix
from gp.controller import MatrixBuilder
from gp.controller import NoteConvertor
我想告诉你如何在烧瓶中使用python编写的函数(在控制器内部)。
如果您想知道如何做我想做的事,我将不胜感激。请理解这个问题,因为学习网络基础知识不是我的主要目标。
【问题讨论】:
-
请同时在 app.py 中显示
imports -
我选择了。很高兴再次见到你。
-
OP 犯了两个非常基本的 Python 错误,许多其他问题都很好地涵盖了这些错误。
标签: python-3.x flask wsgi