Как конвертировать WSGIRequest в строку - PullRequest
0 голосов
/ 31 марта 2020

если я передаю параметр в graph_data () и преобразую его в строку в 1-й проход выполнения программы, он принимает параметр в виде строки, но во 2-й проход принимает параметр как , пожалуйста, кто-нибудь, помогите мне в если я хочу вернуть правильный график для graph_data () Примечание: - если я вручную передам String (Stock Name) в web.dataReader (), он вернет график,

index. html: - Здесь я хотите показать график

<img src="{% url "showplt" %}" />

views.py: - импортировать pandas_datareader как веб

def index(request):
if request.method == 'POST':
    search = request.POST['search']

    graph_data(search)


def graph_data(request):
request_p = str(request)
ex = '.NS'
st_name = request_p + ex
print('STNAME:', st_name)
print(type(st_name))
print(type(request_p))
print(type(ex))
df = web.DataReader(st_name, data_source='yahoo', start='2019-01-01', end='2020-03-16')
print(df)
plt.figure(figsize=(12, 7))
plt.title('Close Price History')
plt.plot(df['Close'])
plt.xlabel('Date', fontsize=18)
plt.ylabel('Close Price in RS', fontsize=18)
buffer = io.BytesIO()
canvas = pylab.get_current_fig_manager().canvas
canvas.draw()
pil_image = PIL.Image.frombytes("RGB", canvas.get_width_height(), canvas.tostring_rgb())
pil_image.save(buffer, "PNG")
pylab.close()
response = HttpResponse(buffer.getvalue(), content_type="image/png")
return response

urls.py: -

    path('showplt/', views.graph_data, name='showplt'),

ошибка (терминал): -

STNAME: <WSGIRequest: GET '/showplt/'>.NS
<class 'str'>
<class 'str'>
<class 'str'>
Not Found: /searchicon.png

STNAME: RELIANCE.NS
<class 'str'>
<class 'str'>
<class 'str'>
Internal Server Error: /showplt/
Traceback (most recent call last):

1 Ответ

0 голосов
/ 01 апреля 2020

В соответствии с упомянутой ошибкой вы хотите получить URL для размещения в вашем DataReader.

Делая его str () преобразует объект запроса WSGI в str, чтобы получить собственный абсолютный путь URL, который вы можете попробовать:

request_p = request.build_absolute_uri()
...