flask框架后端数据传到前端,浏览器接收到了,但页面不渲染,为什么??

新手,在用flask做一个小小的项目,遇到了难题,就是我后端往前端传值,从接口里获取的值传到前台却不显示,f12显示是有接收到的,但就是不忘页面上渲染,可如果我直接把值定死的话,就可以显示出来,这到底是是什么问题,求大佬帮忙 

 

 

从接口接收值

后台代码:

from flask import Flask,render_template,request
import requests

app = Flask(__name__)
app.debug = True
key = "1ee7102878b94eb78ee10fa496729c10"
@app.route('/',methods=["GET","POST"])
def home():
    province = request.form.get("province")
    city = request.form.get("city")
    data = {
        "city": city,
        "province": province
    }

    return render_template("home.html", **data)

if __name__ == '__main__':
    app.run()

前台代码:

<div class="search">
            <form action="/home" method="POST" id="form">
                <input type="text" name="province" class="keywords" placeholder="输入要搜索的省">
                <input type="text" name="city" class="keywords" placeholder="输入要搜索的市">
                <button class="search-btn" type="submit"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
            </form>
            <span class="sm-title">{{ city }}</span>
            <p class="city-search"><b>{{ province }}</b><span id="btn-search" class="glyphicon glyphicon-search" aria-hidden="true"></span></p>
        </div>

运行结果:

f12:

 

自己设定值

后端代码:

from flask import Flask,render_template,request
import requests

app = Flask(__name__)
app.debug = True
key = "1ee7102878b94eb78ee10fa496729c10"
@app.route('/',methods=["GET","POST"])
def home():
    province = "山西省"
    city = "运城市"
    data = {
        "city": city,
        "province": province
    }

    return render_template("home.html", **data)

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

前端代码无变化

运行结果:

你在视图函数输出data,看看数据是否为空

你这浏览器打开链接是GET     你的 province = request.form.get("province") 语句是 POST的表单 请求

 

你要用 province = request.args.get("province")  来获取浏览器的参数  然后访问链接  http://127.0.0.1:5000/?city=CITY&province=PROVINCE

就能捕获到值

@app.route('/', methods=["GET", "POST"])
@app.route('/home', methods=["GET", "POST"])
def home():
    # GET的请求参数
    province1 = request.args.get("province")
    city1 = request.args.get("city")
    
    #POST传入的值
    province2 = request.form.get("province")
    city2 = request.form.get("city")
    
    province = province1 or province2
    city = city1 or city2

    data = {
        "city": city,
        "province": province
    }

    return render_template("home.html", **data)

 

 

 

 

 

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632