fastapi安裝及訪問頁面

2021-10-08 23:28:59 字數 4674 閱讀 9972

環境

python3.8

pip3 install fastapi

pip3 install uvicorn

pip3 install -i 更換阿里源

安裝python3.8後使用pip命令安裝 fastapi 第三方模組以及 uvicorn 模組

匯入 fastapi

from fastapi import fastapi

)"/"

)async

defroot()

:return

寫入到名為web.py中在終端使用命令啟動web

訪問:loaclhost:8000

頁面展示hello world資訊

web訪問完成

安裝 sqlalchemy 模組

建造user的對映

from sqlalchemy.ext.declarative import declarative_base

base = declarative_base(

)class

user

(base)

:#構造對映字段

__tablename__ =

'tbluser'

#對應mysql的tbluser表

userid = column(integer,primary_key=

true

)#表中字段userid

username = column(string(

255)

)#表中username欄位

def__init__

(self,userid,username)

:#建構函式

self.userid = userid

self.username = username

def__str__

(self)

:#列印形式

return

"id:%s,名稱:%s"%(

str(self.userid)

,self.username)

鏈結mysql用pymysql方式連線

安裝pymysql

pip install pymysql

from sqlalchemy import column, string, create_engine, integer

engine =create_engine(

"mysql+pymysql://root:123456@localhost:3306/fastapi"

,encoding=

'utf-8'

)# 把當前的引擎繫結給這個會話

session = sessionmaker(bind=engine)

# 例項化

session = session(

)

查詢user

#查詢

"/user/"

)async

defqueryuserbyuserid

(user_id)

:# 建立query查詢,filter是where條件,呼叫one返回唯一行,呼叫all則是返回所有行

try:

user1 = session.query(user)

.filter

(user.userid==user_id)

.one(

)if user1 ==

none

:return

"查詢無結果"

# user2 = session.query(user).filter(user.userid == '2').one()

# vars1 =

# userlist = session.query(user).all()

# for user in userlist:

# print(user)

# user = engine.connect().execute("select * from tbluser where userid = 1;")

# user = session.execute("select * from user where id = 1;")

session.close(

)except arithmeticerror:

print

("error: 查詢失敗"

)return user1

增加單個usercreatuser是用來儲存前端穿過來的物件,無法用user這個物件,後續新增的話需要將creatuser裡面值重新賦值給user物件,進行新增

class

creatuser

(basemodel)

: userid :

int username :

strdef

__str__

(self)

:return

"id:%s,名稱:%s"%(

str(self.userid)

,self.username)

# 增加乙個

"/user/adduser"

)async

definseruser

(user: creatuser)

:try

: datauser = user(userid=user.userid,username=user.username)

#將creatuser接收到的值寵幸賦值給user

session.add(datauser)

session.commit(

)#每次新增都要commit提交

session.close(

)#關閉

except arithmeticerror:

print

("error: 新增失敗"

)return

"新增成功"

from typing import list  #匯入typing模組 的list

# 增加多個

"/user/adduserlist"

)async

defadduserlist(*

,user: list[creatuser]):

# 接受list列表 前提需要匯入list

try:

for u in user:

datauser = user(userid=u.userid, username=u.username)

session.add(datauser)

#我覺得這裡這樣處理應該太消耗資源了,等待更新

session.commit(

) session.close(

)except arithmeticerror:

print

("error: 新增失敗"

)return

"新增成功"

修改

#修改

"/user/updateuser"

)async

defupdateuser

(user_id:

int,updateuser:schema.creatuser)

:try

: queryuser = session.query(models.user)

.filter

(models.user.userid==user_id)

.one(

) update_dict = updateuser.

dict

(exclude_unset=

true

)#變成字典,修改所有

for k, v in update_dict.items():

setattr

(queryuser, k, v)

session.commit(

) session.refresh(queryuser)

session.close(

)except arithmeticerror:

print

("error: 修改失敗"

)return queryuser

刪除:邏輯刪除

#刪除

"/user/deleteuser"

)async

defdeleteuser

(user_id,deleteuser: schema.creatuser)

: queryuser = session.query(models.user)

.filter

(models.user.userid == user_id)

.one(

)setattr

(queryuser,

"isdelete",0

)#修改isdelete的值為0

session.commit(

) session.close(

)return

總結:

子頁面訪問父頁面 和 跨iframe訪問

1.a iframe的頁面訪問b iframe頁面的內容。parent.document.getelementbyid b iframe的id contentwindow.document.getelementbyid b iframe頁面要訪問的元素id 2.a iframe的3級頁面訪問b if...

Ubuntu安裝mysql及設定遠端訪問方法

ubuntu上安裝mysql非常簡單只需要幾條命令就可以完成。1.sudo apt get install mysql server 2.apt get isntall mysql client 3.sudo apt get install libmysqlclient dev 安裝過程中會提示設定...

實現訪問頁面認證

1.編輯你想要控制的目錄下的.htaccess檔案 假設你的phpmyadmin目錄在 usr local apache htdocs下,你可以這樣在 usr local apache htdocs phpmyadmin 目錄下建立乙個.htaccess檔案,內容如下 authuserfile us...