dysow 发表于 2021-2-24 16:50:00

新手请教python包含其他py文件的问题

hello.py

from flask import Flask,url_for,request,render_template
app=Flask(__name__)

from login import login



@app.route('/')
def hello_world():
                return render_template('hello.html')

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

login.py

from flask import Flask,url_for,request,render_template
#app=Flask(__name__)

@app.route('/login',methods=['POST','GET'])
def login():
        if request.method == 'POST':
                if request.form['user'] == 'admin':
                        return 'successfully'
                else:
                        return 'no user'
        title = request.args.get('title','default')
        return render_template('login.html',title=title)

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



python hello.py 后,login里的路由不管用,请问是哪里错误,刚开始学python

dysow 发表于 2021-2-24 16:51:12

报:NameError: name 'app' is not defined错误

qiuyouzhi 发表于 2021-2-24 16:56:43

首先,你的login.py没有导入app
其次,你光导入了那个函数,你也没调用啊
还是说不调用也可以,导入就行,我不太清楚,没学过Flask
总之建议楼主先去扎实下基础,再学这些

dysow 发表于 2021-2-24 17:01:11

补上,这是hello.html代码,里面调用/login这个路由

<title>python web</title>
<a href=/login?title=abc><h1>Hello World!</h1></a>

wp231957 发表于 2021-2-24 17:39:48

dysow 发表于 2021-2-24 17:01
补上,这是hello.html代码,里面调用/login这个路由

为啥要写2个py文档,服务器端一个py就足够用了
客户端和py没有关系了

BSOD 发表于 2021-2-24 21:50:40

楼主Flask的基本语法不扎实啊,你应该是想把路由拆分到多个文件中吧, 但是涉及到循环导入的问题, 这里可以用蓝图(Blueprint)解决, 你可以查询一下相关的信息
页: [1]
查看完整版本: 新手请教python包含其他py文件的问题