Python瓶子,外部js和css都找不到

2024-04-18 00:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在瓶子里,在索引.html“我导入外部JS和CSS。

但是加载页面时,找不到css和js。

enter image description here

我的项目结构:

enter image description here

编码测试瓶.py:

import bottle
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
from scipy import optimize as opt

def generate(code, year,week):
    kion = pd.read_csv(r'D:/a.csv')
    kion.head()
    Px = np.arange(0, len(kion), 1)
    Py = kion['temp']
    plt.plot(Px, Py)
    res = opt.curve_fit(fit_func, Px, Py)
    a = res[0][0]
    b = res[0][1]
    c = res[0][2]
    d = res[0][3]
    Px2 = []
    for x in Px:
        Px2.append(a * x ** 3 + b * x ** 2 + c * x + d)
    plt.plot(Px, Py)
    plt.plot(Px, np.array(Px2))
    plt.savefig('./image/test.jpg')
    bottle.redirect('/show'+'test')    
def fit_func(x, a, b, c, d):
    return a * x ** 3 + b * x ** 2 + c * x + d
@bottle.route('/show<name>')
def server_static(name):
    return bottle.static_file(name+'.jpg', root='./image') 
@bottle.route('/index')
def index():
    return bottle.template('./html/index.html')
@bottle.route('/generate', method='POST')
def get_para():
    enployeeCode = bottle.request.POST.get('enployeeCode')
    reportYear = bottle.request.POST.get('reportYear')
    reportWeek = bottle.request.POST.get('reportWeek')
    if enployeeCode and reportYear and reportWeek:
        generate(enployeeCode, reportYear,reportWeek)

bottle.run(host='localhost', port=8081)

编码索引.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="../css/bootstrap.min.css">
    <link rel="stylesheet" href="../css/jquery-ui.css">
    <script src="../js/jquery.min.js"></script>
    <script src="../js/jquery-ui.js"></script>
    <script src="../js/bootstrap.min.js"></script>

</head>
<body>
<form action="/generate" method="post">
    enployeeCode: <input name="enployeeCode" type="text" /><br/>
    reportYear: <input name="reportYear" type="text" /><br/>
    reportWeek: <input name="reportWeek" type="text" /><br/>
    <input value="generate" type="submit">
</form>
</body>
</html>

如何修改代码以允许HTML加载JS和CSS?


Tags: nameimportbottledefhtmljsscriptres
1条回答
网友
1楼 · 发布于 2024-04-18 00:38:52

我自己解决了,添加以下代码:

@bottle.route('/css/<filename>')
def server_static(filename):
    return bottle.static_file(filename, root='./css')

@bottle.route('/js/<filename>')
def server_static(filename):
    return bottle.static_file(filename, root='./js')

则没有错误消息。

整个代码:

# -*- coding:  utf-8 -*-
import bottle
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
from scipy import optimize as opt
import os


def generate(code, year,week):
    kion = pd.read_csv(r'D:/a.csv')
    kion.head()
    Px = np.arange(0, len(kion), 1)
    Py = kion['temp']
    plt.plot(Px, Py)
    res = opt.curve_fit(fit_func, Px, Py)
    a = res[0][0]
    b = res[0][1]
    c = res[0][2]
    d = res[0][3]
    print("a = %s" % a)
    print("b = %s" % b)
    print("c = %s" % c)
    print("d = %s" % d)
    Px2 = []
    for x in Px:
        Px2.append(a * x ** 3 + b * x ** 2 + c * x + d)
    plt.plot(Px, Py)
    plt.plot(Px, np.array(Px2))
    plt.savefig('./image/test.jpg')
    bottle.redirect('/show'+'test')


def fit_func(x, a, b, c, d):
    return a * x ** 3 + b * x ** 2 + c * x + d


@bottle.route('/show<name>')
def server_static(name):
    return bottle.static_file(name+'.jpg', root='./image')


@bottle.route('/index')
def index():
    # currentPath = os.path.dirname(__file__)
    # return bottle.template(currentPath+r'/html/index.html')
    return bottle.template('./html/index.html')

@bottle.route('/css/<filename>')
def server_static(filename):
    return bottle.static_file(filename, root='./css')

@bottle.route('/js/<filename>')
def server_static(filename):
    return bottle.static_file(filename, root='./js')

@bottle.route('/generate', method='POST')
def get_para():
    enployeeCode = bottle.request.POST.get('enployeeCode')
    reportYear = bottle.request.POST.get('reportYear')
    reportWeek = bottle.request.POST.get('reportWeek')
    if enployeeCode and reportYear and reportWeek:
        generate(enployeeCode, reportYear,reportWeek)

@bottle.error(404)
def error404(error):
    return 'Nothing here, sorry'

bottle.run(host='localhost', port=8081)

相关问题 更多 >

    热门问题