1. 程式人生 > >flask項目結構(五)使用數據庫

flask項目結構(五)使用數據庫

建立 add uil ini dock png fig pub 兩個

簡介:

基礎搭建好了,開始讀寫數據庫吧。畢竟寫的程序,也沒什麽高深的,就是CRUD,中文說是增刪改查。

一:在數據庫中增加測試數據。

在項目根目錄建立init_test.py

from config import Base,db_session
from models.models import *
from app.app01.app01_models import *

add_public=public(
    name=jack_public,
    email=[email protected],
)
add_private=private(
    name
=jack_private, email=[email protected], ) db_session.add(add_public) db_session.add(add_private) db_session.commit() db_session.remove() public_user=public.query.filter_by(public_name=jack_public).first() print(public_user.public_email) private_user=private.query.filter_by(private_name=
jack_private).first() print(private_user.private_email)

執行結果為:
[email protected]
[email protected]
讀取兩個郵件地址。

二:在app/main中使用

修改/app/main/views.py

from flask import Blueprint
from models.models import *  # 新加,引入models
from app.app01.app01_models import *  # 新加,引入models

main = Blueprint(
main, __name__) @main.route(/) def show(): public_user = public.query.filter_by(public_name=jack_public).first() # 新增數據庫查詢 private_user = private.query.filter_by(private_name=jack_private).first() # 新增數據庫查詢 msg = public_user.public_email + <p> + private_user.private_email # 組織返回代碼 return msg # 修改返回內容為剛組織好的代碼

三:本機測試

我們只修改了默認首頁的返回。首頁返回數據如下

技術分享圖片

四:同步到服務器

syncthing同步

五:生成新docker鏡像

./rebuild.sh

六:測試服務器運行狀態

我的服務器及發布端口是8800

技術分享圖片

七:寫個測試腳本

上次就是部署之後老斷開數據庫連接。

那麽這次寫個腳本進行循環測試:

import requests
r=requests.get(http://192.168.1.3:8800)
print(r.status_code)
import time
t2 = time.strftime(%Y-%m-%d %H:%M:%S)
print(t2)
i = 1
while True:
    try:
        r=requests.get(http://192.168.1.3:8800/app02,timeout=2)
        if r.status_code !=200:
            print(time.strftime(%Y-%m-%d %H:%M:%S)+-----------bed)
            break
        else:
            print(time.strftime(%Y-%m-%d %H:%M:%S)+--ok)
        time.sleep(1)
        i+=1
    except:
        print(time.strftime(%Y-%m-%d %H:%M:%S) + -----------bed)

代碼寫的爛,也沒存記錄。

就是一直傻跑而已。

如果錯了,那就停了

十:遺漏

現在還差路由,靜態文件,權限幾部分。

flask項目結構(五)使用數據庫