使用flask寫移動端API

2022-05-22 11:06:07 字數 2801 閱讀 2811

環境 python 3.7

使用pip 安裝falsk

pip3 install flask

#

!flask/bin/python

from flask import

flask, jsonify, render_template, request, response

from flask import

flask_bootstrap

from flask import

gimport

sqlite3

import

time

import

datetime

import

dbinit

)def

connect_db():

conn = sqlite3.connect("

testdb.db3

",check_same_thread =false)

return

conn

conn =connect_db()

cursor =conn.cursor()

#通過在before_request/teardown_request hook方法可以在每次請求連線開始之前和結束時候連線和斷開資料庫

defbefore_request():

g.db =connect_db()

defteardown_request(exception):

if hasattr(g, 'db'

): g.db.close()

#但是該方法的缺陷在於沒有請求就沒法連線資料庫,所以如果要在指令碼或者python的互動式終端中訪問資料庫需要這樣做

#now you can use the g.db object

#dbinit.init_db()

#缺點,不能離開請求上下文依賴,解決方法

defget_connection():

db = getattr(g, '

_db'

, none)

if db is

none:

db = g._db =connect_db()

returndb#

缺點必須使用 db = get_connection() 而不是僅僅直接使用g.db 來訪問資料庫連線

definitsqlitebd():

connect_db()

createusertable()

defcreateusertable():

cursor.execute(

'create table user (id varchar(20) primary key, name varchar(20))')

conn.commit()

defdeletetable(tablename):

cursor.execute(

'delete table')

conn.commit()

definsertanuser(id, name):

cursor.execute(

'insert into user values(?,?)

',(id,name))

conn.commit()

defqueryalluser():

cursor.execute(

'select id, name from user')

conn.commit()

return

cursor.fetchone()

#**********=page route**********/'

)def

index():

return

"hello, world!"'

/index/')

def home(name=none):

return render_template('

index.html

',name =name)

'/register')

defregiser():

return render_template('

register.html')

#**********=api route**********

/todo/api/v1.0/user/register

', methods=['

get'

])def

createanuser():

insertanuser(1,'

jarvis')

return jsonify('ok'

)'/todo/api/v1.0/users

',methods=['

get'

])def

get_users():

#return jsonify()

return

jsonify(queryalluser())

'/todo/api/v1.0/users/

',methods=['

get'

])def

get_user(username):

users = [,]

user = filter(lambda t: t[username] ==username, users)

if len(user) ==0:

abort(404)

return jsonify()

if__name__ == '

__main__':

initsqlitebd()

vue移動端寫的拖拽

相關知識點 touchstart 當在螢幕上按下手指時觸發 touchmove 當在螢幕上移動手指時觸發 touchend 當在螢幕上抬起手指時觸發 mousedown mousemove mouseup對應的是pc端的事件 touchcancel 當一些更高階別的事件發生的時候 如 接入或者彈出資...

移動端rem使用

1 移動端設計圖750時,html font size 50px。使用方法 1 新增viewport。2 在頁面最裡面引入該段js 建議在head裡面引入 3 css 的編寫,設計圖為750px時,頁面標註大小除以100即可,例如 設計圖標註的是,寬300px,高300px。使用rem就是,widt...

如何寫移動端自適應?

1 使用rem單位去替換px單位,布局模板以寬為320px移動端來布局 2 因為rem單位是以html根元素的font size為標準換算的,所以,隨著螢幕的尺寸越大,而font size始終為320px時所定的畫素 這裡採用html的font size為20px方便計算 且移動端尺寸變大html的...