成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python接口如何寫(xiě)

這篇文章主要介紹python接口如何寫(xiě),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元保靖做網(wǎng)站,已為上家服務(wù),為保靖各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

一、flask

flask是一個(gè)python編寫(xiě)的輕量級(jí)框架,可以使用它實(shí)現(xiàn)一個(gè)網(wǎng)站或者web服務(wù)。本文就用flask來(lái)開(kāi)發(fā)一個(gè)接口。

flask需要先安裝再引用。pip install flask

用flask開(kāi)發(fā)接口的流程為:

1、定義一個(gè)server

server=flask.Flask(__name__) #__name__代表當(dāng)前的python文件。把當(dāng)前的python文件當(dāng)做一個(gè)服務(wù)啟動(dòng)

2、然后定義接口函數(shù),一般函數(shù)和接口函數(shù)的區(qū)別在于,定義為接口的函數(shù)上方要特別加上:

@server.route('/index',methods=['get','post']) #第一個(gè)參數(shù)就是路徑,第二個(gè)參數(shù)支持的請(qǐng)求方式,不寫(xiě)的話默認(rèn)是get
 
@server.route('/index',methods=['get','post'])#第一個(gè)參數(shù)就是路徑,第二個(gè)參數(shù)支持的請(qǐng)求方式,不寫(xiě)的話默認(rèn)是get
def index():
    res={'msg':'這是我開(kāi)發(fā)的第一個(gè)借口','msg_code':0}
    return json.dumps(res,ensure_ascii=False)

3、讓server執(zhí)行起來(lái)

server.run(port=7777,debug=True,host='0.0.0.0')
#port可自定義填寫(xiě)。不要與機(jī)器上已占用的port沖突。
#debug=True,在代碼進(jìn)行修改后,程序會(huì)自動(dòng)重新加載,不用再次運(yùn)行。也就是運(yùn)行一次即可,即使改動(dòng)代碼,也不需要重啟服務(wù)
#host本地ip地址,寫(xiě)0.0.0.0,可以讓其他人直接訪問(wèn)本機(jī)的ip。
#最終這個(gè)接口的訪問(wèn)地址就是  http://127.0.0.1/index  ,get方法或者post方法都可。返回?cái)?shù)據(jù)是json格式res內(nèi)容

示例:

import flask,json
server=flask.Flask(__name__)#__name__代表當(dāng)前的python文件。把當(dāng)前的python文件當(dāng)做一個(gè)服務(wù)啟動(dòng)
@server.route('/index',methods=['get','post'])#第一個(gè)參數(shù)就是路徑,第二個(gè)參數(shù)支持的請(qǐng)求方式,不寫(xiě)的話默認(rèn)是get
def index():
    res={'msg':'這是我開(kāi)發(fā)的第一個(gè)借口','msg_code':0}
    return json.dumps(res,ensure_ascii=False)
server.run(port=7777,debug=True,host='0.0.0.0')

接口訪問(wèn)中,經(jīng)常會(huì)需要輸入?yún)?shù)。那么如果要接受傳入的參數(shù),則可用以下方法:

  username=flask.request.values.get('username')

示例:

import flask,json
server=flask.Flask(__name__)#__name__代表當(dāng)前的python文件。把當(dāng)前的python文件當(dāng)做一個(gè)服務(wù)啟動(dòng)
@server.route('/reg',methods=['post'])#只有在函數(shù)前加上@server.route (),這個(gè)函數(shù)才是個(gè)接口,不是一般的函數(shù)
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':'注冊(cè)成功','msg_code':0}
    else:
        res={'msg':'必填字段未填,請(qǐng)查看接口文檔','msg_code':1001} #1001表示必填接口未填
    return json.dumps(res,ensure_ascii=False)
server.run(port=7777,debug=True,host='0.0.0.0')
#端口不寫(xiě)默認(rèn)是5000.debug=True表示改了代碼后不用重啟,會(huì)自動(dòng)幫你重啟.host寫(xiě)0.0.0.0,別人就可以通過(guò)ip訪問(wèn)接口。否則就是127.0.0.1

二、cookie操作處理

假設(shè)在做登錄接口的時(shí)候,要添加cookie到本地,則需要對(duì)接口返回的json串做一下操作:

res = flask.make_response(json_res) #json_res是接口返回?cái)?shù)據(jù)。然后對(duì)json_res在做操作,構(gòu)造成返回結(jié)果的對(duì)象
res.set_cookie(key,session_id,3600) #最后的數(shù)字是cookie的失效時(shí)間。這樣設(shè)置以后,在執(zhí)行登錄接口成功登錄,則會(huì)同時(shí)在本地加入cookie。其中key和session_id的值根據(jù)實(shí)際情況定義

例子:

@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)#返回結(jié)果弄成json
        res = flask.make_response(json_res)  #構(gòu)造成返回結(jié)果的對(duì)象
        res.set_cookie(key,session_id,3600) #最后的數(shù)字是cookie的失效時(shí)間。
        return res

以上操作可成功保存cookie到本地。以后接口中需要使用coookie的時(shí)候,只需獲?。?/p>

cookies = flask.request.cookies  #所有的cokies,是個(gè)字典。然后可通過(guò)字典獲取到對(duì)應(yīng)的cookie,并執(zhí)行操作。

例:比如在做一些操作的時(shí)候,必須在登錄狀態(tài)下才可以,這時(shí)候就可以直接拿本地登錄時(shí)的cookie中內(nèi)容和服務(wù)器中的內(nèi)容進(jìn)行比對(duì),如果有一致的,說(shuō)明已成功登錄

@server.route('/posts')
def posts():
    cookies = flask.request.cookies  #所有的cokies
    username = ''  #
    session = ''#定義這兩個(gè)變量是為了,在沒(méi)有傳cookie的時(shí)候用的。
    for key,value in cookies.items():
        if key.startswith('txz_session'): #判斷cookie以txz_session開(kāi)頭的話,取到它
            username = key
            session = value  #調(diào)用接口的時(shí)候用戶傳過(guò)的seesion,從cookie里面取過(guò)來(lái)的
    redis_session = tools.op_redis(username) #從redis里面獲取到的的cookie
    if redis_session == session:  #判斷傳過(guò)來(lái)的seeion和redis里面的session一樣
        title = f

以上是python接口如何寫(xiě)的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前名稱:python接口如何寫(xiě)
文章分享:http://jinyejixie.com/article14/ggsoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣做網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
军事| 栾城县| 乐亭县| 青河县| 论坛| 尉氏县| 葫芦岛市| 会昌县| 黄骅市| 军事| 治多县| 甘南县| 军事| 衡阳市| 徐州市| 哈巴河县| 贺州市| 长丰县| 元阳县| 碌曲县| 阜南县| 韶山市| 淳化县| 静乐县| 泰和县| 凭祥市| 花垣县| 武鸣县| 江北区| 林甸县| 崇礼县| 巴林左旗| 郸城县| 广丰县| 白山市| 彭泽县| 高青县| 明光市| 河曲县| 普定县| 张家界市|