Maison > développement back-end > Tutoriel Python > Comment écrire une interface Python

Comment écrire une interface Python

藏色散人
Libérer: 2019-07-02 10:33:28
original
12337 Les gens l'ont consulté

Comment écrire une interface Python

1. flask

flask est un framework léger écrit en python, qui peut être utilisé pour implémenter un site Web. Ou un service Web. Cet article utilise Flask pour développer une interface.

Flask doit d'abord être installé puis référencé. pip install flask

Le processus de développement d'interfaces avec flask est le suivant :

1 Définir un serveur

server=flask.Flask(__name__) #__name__代表当前的python文件。把当前的python文件当做一个服务启动
Copier après la connexion

2. les fonctions d'interface sont , au dessus de la fonction définie comme interface, ajoutez :

@server.route('/index',methods=['get','post']) #第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get
 
@server.route('/index',methods=['get','post'])#第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get
def index():
    res={'msg':'这是我开发的第一个借口','msg_code':0}
    return json.dumps(res,ensure_ascii=False)
Copier après la connexion

3. Laissez le serveur exécuter

server.run(port=7777,debug=True,host='0.0.0.0')
#port可自定义填写。不要与机器上已占用的port冲突。
#debug=True,在代码进行修改后,程序会自动重新加载,不用再次运行。也就是运行一次即可,即使改动代码,也不需要重启服务
#host本地ip地址,写0.0.0.0,可以让其他人直接访问本机的ip。
#最终这个接口的访问地址就是  http://127.0.0.1/index  ,get方法或者post方法都可。返回数据是json格式res内容
Copier après la connexion

Exemple :

import flask,json
server=flask.Flask(__name__)#__name__代表当前的python文件。把当前的python文件当做一个服务启动
@server.route('/index',methods=['get','post'])#第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get
def index():
    res={'msg':'这是我开发的第一个借口','msg_code':0}
    return json.dumps(res,ensure_ascii=False)
server.run(port=7777,debug=True,host='0.0.0.0')
Copier après la connexion

Lors de l'accès à l'interface, vous avez souvent besoin pour saisir les paramètres. Ensuite si vous souhaitez accepter les paramètres entrants, vous pouvez utiliser la méthode suivante :

  username=flask.request.values.get('username')
Copier après la connexion

Exemple :

import flask,json
server=flask.Flask(__name__)#__name__代表当前的python文件。把当前的python文件当做一个服务启动
@server.route('/reg',methods=['post'])#只有在函数前加上@server.route (),这个函数才是个接口,不是一般的函数
def reg():
    username=flask.request.values.get('username')
    passwd=flask.request.values.get('passwd')
    if username and passwd:
        sql='select * from my_user where username="%s";'%username
        print(sql)
        if my_db(sql):
            res={'msg':'用户已存在','msg_code':2001}
        else:
            insert_sql='insert into my_user (username,passwd,is_admin) values ("%s","%s",0);'%(username,passwd)
            my_db(insert_sql)
            res={'msg':'注册成功','msg_code':0}
    else:
        res={'msg':'必填字段未填,请查看接口文档','msg_code':1001} #1001表示必填接口未填
    return json.dumps(res,ensure_ascii=False)
server.run(port=7777,debug=True,host='0.0.0.0')
#端口不写默认是5000.debug=True表示改了代码后不用重启,会自动帮你重启.host写0.0.0.0,别人就可以通过ip访问接口。否则就是127.0.0.1
Copier après la connexion

2. Traitement des opérations de cookies

Supposons que vous le fassiez Lors de la connexion à l'interface, si vous souhaitez ajouter des cookies au local, vous devez effectuer les opérations suivantes sur la chaîne json renvoyée par l'interface :

res = flask.make_response(json_res) #json_res是接口返回数据。然后对json_res在做操作,构造成返回结果的对象
res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。这样设置以后,在执行登录接口成功登录,则会同时在本地加入cookie。其中key和session_id的值根据实际情况定义
Copier après la connexion

Exemple :

@server.route('/login',methods=['get'])
def login():
    username = flask.request.values.get('username')
    pwd = flask.request.values.get('pwd')
    if username == 'zy' and pwd=='123456':
        session_id = tools.my_md5(username+time.strftime('%Y%m%d%H%M%S'))
        key = 'txz_session:%s'%username
        tools.op_redis(key,session_id,600)
        res = {'session_id':session_id,'error_code':0,'msg':'登录成功',
               'login_time':time.strftime('%Y%m%d%H%M%S') } #给用户返回的信息
        json_res = json.dumps(res,ensure_ascii=False)#返回结果弄成json
        res = flask.make_response(json_res)  #构造成返回结果的对象
        res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。
        return res
Copier après la connexion

Les opérations ci-dessus peuvent enregistrer avec succès le cookie en local. Lorsque vous aurez besoin d'utiliser des cookies dans l'interface à l'avenir, il vous suffira d'obtenir :

cookies = flask.request.cookies #Tous les cookies sont un dictionnaire. Ensuite, le cookie correspondant peut être obtenu via le dictionnaire et l'opération peut être effectuée.

Exemple : Par exemple, lorsque vous effectuez certaines opérations, vous devez être connecté. À ce stade, vous pouvez comparer directement le contenu du cookie lors de la connexion locale avec le contenu du serveur s'il y a un. consistent , indiquant que vous vous êtes connecté avec succès

@server.route('/posts')
def posts():
    cookies = flask.request.cookies  #所有的cokies
    username = ''  #
    session = ''#定义这两个变量是为了,在没有传cookie的时候用的。
    for key,value in cookies.items():
        if key.startswith('txz_session'): #判断cookie以txz_session开头的话,取到它
            username = key
            session = value  #调用接口的时候用户传过的seesion,从cookie里面取过来的
    redis_session = tools.op_redis(username) #从redis里面获取到的的cookie
    if redis_session == session:  #判断传过来的seeion和redis里面的session一样
        title = f
Copier après la connexion

Recommandations associées : "Tutoriel Python"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal