flask项目结构(五)使用数据库
简介:
基础搭建好了,开始读写数据库吧。毕竟写的程序,也没什么高深的,就是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='jack_public@jackadam.ml',
)
add_private=private(
name='jack_private',
email='jack_private@jackadam.ml',
)
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)
执行结果为:
jack_public@jackadam.ml
jack_private@jackadam.ml
读取两个邮件地址。
二:在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项目结构(五)使用数据库的更多相关文章
- 一个比较良好的flask项目结构
一个比较良好的flask项目结构 project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ ...
- Flask项目中使用mysql数据库启动项目是发出警告
Flask项目中使用mysql数据库启动项目是发出警告: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA ...
- flask项目结构(四)使用sqlalchemy和alembic
简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...
- flask项目结构(三)使用蓝图
简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...
- flask项目结构(一)mariadb
简介: 本文主要是根据自己所学,创建一个flask项目,使用sqlalchemy,alembic,mariadb,bootstrap,APScheduler,selenium,request…………技 ...
- flask项目结构(二)创建flask,同步docker
简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...
- python flask 项目结构
1. 今天学习遇到一个问题,以前项目比较简单,所有的@app.route 都是写在一个文件app.py 中的,然后启动也是在这个文件中启动app.run .但是我今天 想写一个新的模块, 于是我新启了 ...
- flask项目结构(六)快速开发后台flask-admin
简介: Flask-admin 相当django的xadmin吧! 快速装配一个后台用来管理数据. Flask-admin也是有使用局限性的,他只适合开发小型快速的应用,不适合那种大型并发性高,逻辑复 ...
- Flask 项目结构(仅供参考)
project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ # JS脚本 css/ # 样式表 img/ # 图片 favicon.ico # 网站图标 templat ...
随机推荐
- Selenium WebDriver Api 知识梳理
之前一直没有系统的梳理WebDriver Api的相关知识,今天借此机会整理一下. 1.页面元素定位 1.1.8种常用定位方法 # id定位 driver.find_element_by_id() # ...
- php如何控制客户端生成缓存
php如何控制客户端生成缓存 一.总结 一句话总结:用http消息响应头中的Cache-Control来控制客户端缓存,说的是页面本身被客户端缓存,而不是重新生成的其它的非页面缓存 响应头Cache- ...
- Superclass和Constructor Chaining
A subclass inherits accessible date fields and methods from its superclass. Does it inherit construc ...
- 20171022xlVBA练手提取入所记录
Sub GetWordText改进() Dim Wb As Workbook Dim Sht As Worksheet Dim Rng As Range Dim wdApp As Object Dim ...
- 跨域和jsonp的原理
什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制. 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: h ...
- React文档(一)安装
React是一个灵活的可以用于各种不同项目的框架,你可以用它来写新应用,你也可以逐步将它引进已有的代码库而不用重写整个项目. 试用React 如果你想玩一玩React,那么就去CodePen上试一试. ...
- arguments.callee用法
arguments.callee 在哪一个函数中运行,它就代表哪一个函数. 一般用在匿名函数中. 在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调. 这时就可以用argume ...
- stl中的transform()注意其与for_each的不同点(有无返回值)
#include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...
- opencv 中的mat类(非原创)
Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,Mat这个类有两部分数据.一个是matrix header(矩阵头),这部分的大小是固定的,包含矩阵的大小,存储 ...
- MIR7预制发票扣除已经预制的数量(每月多次预制,未即时过账)
业务场景见抬头,有没有标准的解决方案就不说了,也没去考虑... 这个增强还是SAP老表提供的,感谢,省了不少时间. INCLUDE:LMR1MF6S 最后的位置 ENHANCEMENT ZMIR7_0 ...