ホームページ >バックエンド開発 >Python チュートリアル >Pythonインターフェースの書き方
1. flask
flask は Python で書かれた軽量フレームワークで、Web サイトの実装に使用できます。あるいはウェブサービス。この記事では flask を使用してインターフェイスを開発します。
flask は最初にインストールしてから参照する必要があります。 pip install flask
flask を使用したインターフェースの開発プロセスは次のとおりです:
1. サーバーを定義します
server=flask.Flask(__name__) #__name__代表当前的python文件。把当前的python文件当做一个服务启动
2. 次にインターフェース関数を定義します一般的な関数との違いインターフェイス関数は、インターフェイスとして定義された関数の上に追加します:
@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)
3. サーバーに
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内容
を実行させます 例:
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')
インターフェイスへのアクセス中に、多くの場合、パラメータを入力します。受信パラメータを受け入れたい場合は、次のメソッドを使用できます:
username=flask.request.values.get('username')
Example:
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
2. Cookie 操作の処理
インターフェイスにログインするときに、Cookie をローカルに追加する場合は、インターフェイスから返された JSON 文字列に対して次の操作を実行する必要があるとします。
res = flask.make_response(json_res) #json_res是接口返回数据。然后对json_res在做操作,构造成返回结果的对象 res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。这样设置以后,在执行登录接口成功登录,则会同时在本地加入cookie。其中key和session_id的值根据实际情况定义
例:
@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
上記の操作により、Cookie をローカルに正常に保存できます。将来インターフェイスで Cookie を使用する必要がある場合は、次の情報を取得するだけです:
cookies = flask.request.cookies #すべての Cookie は辞書です。その後、辞書を通じて対応する Cookie を取得し、操作を実行できます。
例: たとえば、いくつかの操作を行う場合、ログインする必要があります。このとき、ローカルでログインしたときの Cookie の内容とサーバーの内容を直接比較できます。一貫した 。ログインに成功したことを示します。
@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
関連する推奨事項: 「Python チュートリアル 」
以上がPythonインターフェースの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。