欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python__flask初识

程序员文章站 2022-07-05 11:34:09
1. debug:在app.run()里面加上app.run(debug=True), 在浏览器中调试的时候可以直接显示出错误. 2. 在url中传递参数,可以这样 3. 根据视图函数来找url地址: 4. 跳转/重定向: 5. 模板: 6. 模板传参: 7. jinja2 语句: 8. jinja ......

1.  debug:在app.run()里面加上app.run(debug=True), 在浏览器中调试的时候可以直接显示出错误.

2.  在url中传递参数,可以这样   

@app.route('/chuancan/<id>')
def my_post(id):
    return '传递的参数为:%s' %id
#一定要在路由里面把传递的参数用尖括号括起来
#url可以这样  http://localhost:5000/chuancan/123

>>>传递的参数为123

3.  根据视图函数来找url地址:

from flask import url_for

@app.route('/host/')
def host():
    pass

print(url_for('host'))

>>>/host/
#url_for里面传入函数名字,反回的是路由地址

4.  跳转/重定向:

from flask import redirect

@app.route('/host/')
def host():
    return redirect('/index/')


>>>访问 http://localhost:5000/host
        如果有index路由,则会跳转到index页面去:
            http://localhost:5000/index

5.  模板:

from flask import render_template

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

>>>把index.html模板文件渲染之后加载出来

6.  模板传参:

from flask import render_template

@app.route('/index/')
def index():
   
    return render_template('index.html',a=1)

#index.html  ->  用{{ a }} 调用

>>> 1

7. jinja2 语句:

#index.html 里面
{% for foo in session %} {% endfor %} {% if session %} {% endif %} 这样用-.-

8.  jinja2 过滤器,就是函数:

#index.html 里面

{{ something|default('lalala')}}

#如果something这个变量没有,则用default里面的内容替代

{{names|length}}

#如果names是一个列表或者字典一类的,返回它的元素个数

9.  继承模板:

#base.html

<body>
hahaahahahah11111111
{% block main %}{% endblock %}
</body>

#这是一个父模板,如果在子模版中要修改东西,可以加一个block.
#index.html

{% extends 'base.html' %}
{% block main %}
<h1>添加的子东西</h1>
{% endblock %}

#这是个继承了base.html的页面,继承用extends,如果渲染完成之后是这样:


>>>hahaahahahah11111111        ->父模板的
       添加的子东西              ->子模板在block里面加的

10.  链接:

#index.html


<a href="{{url_for(login)}}"></a>

#推荐用url_for(视图函数)