Flask基础学习
1.debug、host、port 模式修改
1) debug模式
默认debug模式是off,在修改代码调试过程中需要暂停重启使用,这时可修改on模式解决。
同时在debug模式开启下可看到出错信息。
下面有关于Pycharm社区版和专业版修改debug模式的区别
专业版
社区版:
if __name__ == '__main__':
app.run(debug=True)
对比如下
host、port模式修改:
host模式的修改可使同一网络的其他电脑访问本IP,port模式的修改避免同一端口被程序占用。
专业版编辑,社区版同上使用app.run(port='***',host='***')
运行结果:
url文件的配置
1) 使用路由传值方式,语法:<?> 直接传给函数值使用
@app.route('/book/<id>')
def hello_world(id):
return 'Hello {}!'.format(id)
2) 查询字符串方式传值,语法:request.args.get(...)
@app.route('/book/list')
def book_list():
page = request.args.get('page',default=1,type=int)
return 'this page value: {}!'.format(page)
3. jinja2模板使用:
from flask import Flask,request,render_template
app = Flask(__name__)
@app.route('/book/<id>')
def hello_world(id):
# return 'Hello {}!'.format(id)
return render_template('index.html',id = id,username ='pass')
运行结果:
html 的语法:{{ ... }}
<title>当前页ID: {{ page }},用户名:{{ username }}</title>
过滤器使用 语法:{{ xxx | length }}
- {{ xxx | list }}
- {{ xxx | lower }}
- {{ xxx | safe }}
- {{ xxx | reverse }}
自定义过滤器使用
from datetime import datetime
def datetime_format(value,format= '%Y-%d-%m %H:%M'):
return value.strftime(format)
app = Flask(__name__)
app.add_template_filter(datetime_format,'dformat')
# 绑定过滤器名称
@app.route('/book/list')
def book_list():
mytime = datetime.now()
print(mytime)
return render_template('index.html',mytime=mytime)
# web 应用
<title>{{ mytime|dformat }}</title>
if for 模板应用
语法:
{{% if xxx > 10 %}}
{{% elif xxx==10 %}}
{{% else %}}
{{% endif %}}
{{% for x in xxx %}}
{{% endfor %}}
模板继承语法
{% extends 'xxx.html' %}
{% block xxx %}
{% endblock %}
静态文件加载
语法:
<img src="{{ url_for('static',filename="images/test.png") }}" alt ='pic test'>