FLASK

作者: const27 分类: All,开发-Python 发布时间: 2020-03-09 16:59

flask的一些基础

1.路由及url部分:

如何设置路由 @··.route():

在设置的方法上面加装饰器,当访问指定路由时会调用该方法

@实例化flask对象.route(路由,参数)

变量规则 <>:

这个东西可以动态构建URL。
主要步骤为在装饰器中用<>来标记url中的变量部分,然后传参给方法. 下面是一个例子:

from flask import Flask
app=Flask(__name__)

@app.route('/a/<name>')
def asc(name):
    return("hi %s!"%name)
app.run()

通过传入url的变量部分的不同分别返回不同的信息.
同时你也可以在装饰器中在变量部分前加int:,float:,path:,像这样
来框定url变量部分只接受哪种类型的数据,若传入的变量不是框定的数据类型,则直接404

重定向 url_for(),redirect():

重定向到指定方法的url:

redirect(url_for("函数名",目标函数参数=附带过去的参数))

2.模板:

如何调用html文件: render_templates() 函数

return flask.render_templates("··.html",变量名=值)

程序就会在同目录下的templates文件夹下寻找指定html文件并返回.
这里的变量名指的是模板引擎里的变量

jinja2模板的分隔符 {%..%}等:

flask用的模板引擎是jinja2.因此可以调用jinja2的分隔符
在html中插入以下分隔符可以起到动态改变html内容的效果

1.{{控制语句}      可以是一个变量,也可以是一个python语句,来控制此处的输出
2.{% .. %}       控制语句,在html使用如if,for等函数控制展示的内容,比如这种↓
        {% if marks>2 %}
        <h1>high</h1>
        {% else %}
        <h1>low</h1>
        {% endif %}

3.{# .. #}    添加注释    不知道咋用
4.# ..##    用于行语句   不知道咋用

如何调用静态文件:

很简单,只需在html文件里通过模板即可。静态文件一般放在/static里,也可放其他地方

...src={{url_for('static',filename='··.js')}}

3.表单数据传参 request:

举例:

我们拿做一个登录系统举例。

1.首先我们写出登陆界面的后端,这个简单,直接return出登录界面就可
@app.route("/form")
def form():
    return flask.render_template('form.html')
2.编写登陆界面,注意action的地方写希望传参去的方法的路由
<form action='http://localhost:5000/form/formout' method="GET">
3.编写接送参数的后端,这里就需要request对象了。
request对象常用的属性有:
form    用于接收post数据
args.get    用于接收get数据
cookies.get     用于接收cookie键值
method      当前的请求方法
files       下文文件上传再讲

好的,我们后端编写如下,  args.get接受get数据,from接受post数据
app.route("/form/formout")
def formout():
    user=flask.request.args.get('user')   //user=flask.request.form['nm']
    passwd=flask.request.args.get('passwd') //passwd=flask.request.from['passwd]
    return flask.render_template('formout.html',user=user,passwd=passwd
4.编写登陆后页面的前端,不赘述

4.设置cookie与session make_response,set_cookie,ession:

要为用户设置cookie,需用到make_response这个对象.

make_response: 要返回视图可以直接return文件或内容,但是这样做不利于添加http头部信息之类的,所以用make_response把返回的视图封装起来方便设置一些信息
如何设置cookie:很简单

make_response().set_cookie('键',值)

要设置session,方法如下:

1.设置secret_key:    假设实例化flask对象是app,那么设置session密钥就应该
app.config['SECRET_KEY‘]=·····
2.设置session。  
值=flask.session['键']
3.销毁session
flask.session.pop['键',none]

5.文件上传request.files:

和传参大同小异。

0.设置文件上传配置:最常用的还是设置文件上传的目录,假设实例化Flask对象为app    
app.config['upload_folder']='目标目录'
1.在前端,form的action指向处理文件的函数,encrypt设置为multipart/form-data

 <form action='/upload/check' method='POST' enctype="multipart/form-data">
2.后端,request.files['name']接受上传上来的文件,然后对其用.save('保存文件的名称')即可保存
 f=flask.request.files['file']
 f.save((f.filename))

6.数据库链接mysql:

一手pymysql库

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

7 + 10 =

标签云