教程用的是bootstrap的模板,这里就用纯html和css自己写了
- 更改前面写的路由,‘/’根路由返回index.html,‘/<username>'返回user.html
- blog.py:
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/<username>')
def user(username):
return render_template('user.html', username=username)
- index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Just for fun</title>
</head>
<body>
<h1>Hello world</h1>
</body>
</html>
- user.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Just for fun</title>
</head>
<body>
<h1>Hello {{username}}</h1>
</body>
</html>
- 启动服务器 在浏览器打开命令行里给出的url,就可以看到 helloworld,在url后面随便加上什么 比如我的是 ’http://127.0.0.1:7777/baozi‘ 可以看到页面上就是 hello baozi
- 现在添加404页面和500页面,当访问返回404或500时就给访问者展示这两个页面
- 404.html,其他同index.html页面一样,只改<h1>标签里面的文字
<h1>Not Found</h1>
- 500.html
<h1>Server Error</h1>
- 添加这两个路由:
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_server_error():
return render_template('500.html'), 500
-
现在访问比如http://127.0.0.1:7777/baozi/jdsfhj,页面就会返回Not Found几个字,如果没有配置404页面,返回的除了这几个字下面还有一行小字,注意区分
-
完整的blog.py
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/<username>')
def user(username):
return render_template('user.html', username=username)
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_server_error():
return render_template('500.html'), 500
if __name__ == '__main__':
app.run(port = 7777,debug=True)
- debug=true 是当你对程序做出了改变之后,不需要手动重启项目,项目会自动帮你做出重启
- 使用Flask-Script支持命令行选项
- Flask的开发web服务器支持很多启动设置选项,而传递设置选项的理想方式是使用命令行参数
- 先下载Flask-Script
pip install flask-script
- 修改blog.py
from flask import render_template
####下面添加
from flask_script import Manager
app = Flask(__name__)
####下面添加
manager = Manager(app)
app.run(port = 7777,debug=True)
####这里不是添加 , 是将上面这句更改为:
manager.run()
(自我理解:manager = Manager(app) 类似 Vue.use(Router))
- 之前有发生过文件修改访问5000端口返回的都是以前那个数据,把浏览器缓存清除了也没有解决,所以干脆换了一个端口,但是这里不能直接在 manager.run()配置端口,而是在命令行启动的时候添加参数
##正常以5000端口启动
python3 blog.py runserver
##以7777端口启动
python3 blog.py runserver -p 7777
网友评论