首页 新闻 会员 周边 捐助

flask的app.py

0
悬赏园豆:50 [已解决问题] 解决于 2021-09-13 19:27

有没有大佬能做出图中的效果,源码在下面,不会组合

服务器程序app.py

app.py

from flask import Flask, render_template, request

app = Flask(name)

@app.route('/')
def index():
uname = request.values.get('uname') if 'uname' in request.values else ''
return render_template('index.html', uname=uname)

if name == 'main':
app.run(debug=True)

<!-- templates\index.html -->
<!DOCTYPE html>
<html>
<head>
<title>flask模板</title>
</head>
<body>

    <h3>{{ uname }} 您好,这是首页</h3>
    
    <a href="/login">登录</a>
</body>

</html>

客户端程序client.py

client.py

import urllib.request as rq
import urllib.parse as pa

url = 'http://127.0.0.1:5000'

def getindex():
try:
uname = pa.quote('张三')
data = 'uname=%s' % uname
html = rq.urlopen(url + '?' + data).read().decode('utf-8')
print(html)
except Exception as e:
print(e)

if name == 'main':
getindex()
print('END')

AUziQaQ的主页 AUziQaQ | 初学一级 | 园豆:57
提问于:2021-09-13 16:03
< >
分享
最佳答案
0

搞不懂,都在哪找的奇奇怪怪的教程

# demo/app.py
from flask import Flask, render_template, request

app = Flask(__name__,
            static_folder='static',
            template_folder='templates')


@app.route('/')
def index():
    uname = request.values.get('uname') if 'uname' in request.values else ''
    return render_template('index.html', uname=uname)


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

<br>

<!-- demo/templates/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>flask模板</title>
</head>
<body>

    <h3>{{ uname }} 您好,这是首页</h3>

    <a href="/login">登录</a>
</body>
</html>
收获园豆:50
〆灬丶 | 老鸟四级 |园豆:2314 | 2021-09-13 16:49

HTTP Error 500: INTERNAL SERVER ERROR
END

运行结果

AUziQaQ | 园豆:57 (初学一级) | 2021-09-13 16:56

客户端那部分你就别看了,一个请求; 先把服务端搞清楚吧
flask官网、知乎李辉(Flask开发团队(Pallets Team)) 等等,都有更直观的入门教程

〆灬丶 | 园豆:2314 (老鸟四级) | 2021-09-13 16:56

@AUziQaQ: 你是怎么运行的,描述或截图;
我这边是正常的

 * Debugger is active!
 * Debugger PIN: 299-474-681
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [13/Sep/2021 16:44:36] "GET /?uname=1 HTTP/1.1" 200 -
〆灬丶 | 园豆:2314 (老鸟四级) | 2021-09-13 17:00

@韆:

AUziQaQ | 园豆:57 (初学一级) | 2021-09-13 17:02

@韆:

AUziQaQ | 园豆:57 (初学一级) | 2021-09-13 17:03

@AUziQaQ: 你自己找的教程,好好看下啊
···
data = 'uname=%s' % uname
html = rq.urlopen(url + '?' + data).read().decode('utf-8')
这里url拼接了, 而里第一张截图, pycharm 显示 'GET / HTTP1.1' 你咋啥都没拼接
···

http://127.0.0.1:5000/?uname=1

〆灬丶 | 园豆:2314 (老鸟四级) | 2021-09-13 17:06

@韆: 拼接在什么地方,真的是小白

AUziQaQ | 园豆:57 (初学一级) | 2021-09-13 17:18

@AUziQaQ:
拼接的都给你写好了 http://127.0.0.1:5000/?uname=1

如果还不行,就去官网重0开始学吧

你暴露的基础问题或者说习惯问题太多了
1.项目路径不要出现中文命名
2.脚本名称尽量明确含义 2.py 也太随意了
3. 我贴的代码开头都有文件层级介绍 例: demo 文件夹下 app.py 代码如下;demo/templates 文件夹下 index.html 代码如下, 你贴的第二页 jinja 的报错其实有很多知识点可以学 flask 实例化后会记录很多信息,例如 get_or_select_template 你debug时可以在该函数里面看到 模板是如何加载与拼接的
4.要不是前面一个提问白捡了 30 豆,我绝对不会打这么多
5.一步一个脚印慢慢来吧

〆灬丶 | 园豆:2314 (老鸟四级) | 2021-09-13 17:22

@韆: 解决了,文件层级问题,感谢感谢

AUziQaQ | 园豆:57 (初学一级) | 2021-09-13 19:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册