python flask 项目结构
1. 今天学习遇到一个问题,以前项目比较简单,所有的@app.route 都是写在一个文件app.py 中的,然后启动也是在这个文件中启动app.run .但是我今天
想写一个新的模块, 于是我新启了一个 yellowPages.py ..然后启动, 访问这个py 文件中url 路径就报404 了 。。网上找了半天,
方法1 : 在app中引入 yellowPages 就可以访问到了。。
import yellowPages 方法2 : buleprint 蓝图。。研究中: 据说试用大项目的结构
app
-templates
-a1.html
-a2.html
-views
-a1.py
-a2.py
-app.py
-manager.py
1.1 manager.py
from views.view import app,scheduler
from views.serverReq import gethttp
from views.app import admin
from views.yellowPages import yellow app.register_blueprint(admin, url_prefix='/admin',template_folder='/templates')
app.register_blueprint(yellow, url_prefix='/',template_folder='/templates') if __name__ == '__main__':
app.debug=True
scheduler.add_job(func=gethttp, id='', args=(), trigger='interval', seconds=60, replace_existing=False)
scheduler.init_app(app=app)
scheduler.start()
app.run()
1.2 app.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_apscheduler import APScheduler app = Flask('main1xx')
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@192.168.99.100/activiti_api'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 数据库
db = SQLAlchemy(app)
#定时任务
scheduler = APScheduler()
1.3 a1.py
from flask import request,render_template,Blueprint
from views.sqlconfig import Ip, AIServer,TM
import numpy as np
import datetime
from sshserver.config import paramikoclient
from sshserver.test1 import transportclient
admin = Blueprint('admin', __name__) # url_prefix='/'
client={} @admin.route('/',methods = ['GET','POST'])
def index():
if request.method == 'POST':
filters = []
if request.values.get('ip')!='':
filters.append(AIServer.ip==request.values.get('ip'))
if request.values.get('port')!='':
filters.append(AIServer.port == request.values.get('port'))
if request.values.get('server_type')!='':
filters.append(AIServer.server_type == request.values.get('server_type'))
if request.values.get('server_addr')!='':
filters.append(AIServer.server_addr == request.values.get('server_addr'))
f = np.array(filters)
servers = AIServer.query.filter(*f).order_by("server_status").all()
else:
servers = AIServer.query.order_by("server_status").all()
return render_template('server.html',servers=servers,form = request.form)
1.4 a2.py
from flask import Blueprint, render_template
from .sqlconfig import YellowPages yellow = Blueprint('yellow', __name__) # url_prefix='/' # 网站
@yellow.route('/yellowPage', methods=['GET'])
def yellowPage():
servers = YellowPages.query.order_by("type").all()
websites = {}
t1 = []
t2 = []
t3 = []
websites['t1'] = t1
websites['t2'] = t2
websites['t3'] = t3
for s in servers:
website = {'id': s.id, 'name': s.name, 'url': s.url}
websites['t' + str(s.type)].append(website)
return render_template('yellowPages.html', websites=websites)
2. 关于flask templates 路径问题,默认是在.py 的同级目录templates下。。 如果想以项目路径为启动可以
app = Flask('x') 其中x 可以是任意值。。
python flask 项目结构的更多相关文章
- 一个比较良好的flask项目结构
一个比较良好的flask项目结构 project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ ...
- flask项目结构(四)使用sqlalchemy和alembic
简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...
- flask项目结构(三)使用蓝图
简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...
- python的项目结构
项目结构 知识点 创建项目,编写 __init__ 文件 使用 setuptools 模块,编写 setup.py 和 MANIFEST.in 文件 创建源文件的发布版本 项目注册&上传到 P ...
- 使用Nginx+Uwsgi部署Python Flask项目
第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...
- Python Flask项目步骤
构建flask项目步骤 步骤一:构建基础项目框架 创建manage.py文件 from flask import Flask app = Flask(__name__) ""&qu ...
- flask项目结构(二)创建flask,同步docker
简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...
- flask项目结构(一)mariadb
简介: 本文主要是根据自己所学,创建一个flask项目,使用sqlalchemy,alembic,mariadb,bootstrap,APScheduler,selenium,request…………技 ...
- flask项目结构(五)使用数据库
简介: 基础搭建好了,开始读写数据库吧.毕竟写的程序,也没什么高深的,就是CRUD,中文说是增删改查. 一:在数据库中增加测试数据. 在项目根目录建立init_test.py from config ...
随机推荐
- iframe解决ajax主域和子域之间的跨域问题
在某些应用场景下,需要在主域中,调用子域中的某个接口,如果直接在主域中向子域发ajax请求,会报跨域错误,可以用iframe来解决这种跨域问题.假如主域为www.baidu.com,子域为baike. ...
- ssh动态端口转发
ssh本地和远程端口转发都需要固定的应用服务器IP和端口,但是很多情况下,应用的端口繁多逐个转发效率不高,而且一些应用使用不固定的端口,经常跳着使用端口,一些网站还不支持IP直接访问,这导致ssh本地 ...
- Unable to compile class for JSP
https://www.cnblogs.com/mthoutai/p/7136304.html 错误提示: The return type is incompatible with JspSource ...
- jms版本
Java消息服务是一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914). 2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1 ...
- Jmeter(十九) Md5加密操作之-------BeanShell PreProcessor(转载)
转载自 http://www.cnblogs.com/yangxia-test 背景: 有一些登录会做一些md5校验,通过jmeter的BeanShell可以解决MD5加密情况. 1.首先需要一个解码 ...
- tomact启动报错org.apache.jasper.EmbeddedServletOptions.<init> The scratchDir you specified:xxx is unusable.
问题: 22-May-2018 18:00:15.891 严重 [localhost-startStop-1] org.apache.jasper.EmbeddedServletOptions.< ...
- CSS3 Backgrounds相关介绍
CSS3 Backgrounds相关介绍 1.背景图片(background images)是在padding-box的左上角落脚安家的,我们可以使用background-position属性改变默认 ...
- axaj 的回调
//为了动态生成表格获取数据用ajax获取servlet回调数据 <script> $.ajax({ url = "servlet地址", type : "p ...
- jdbc java远程连接mysql数据库服务器
首先,需要注意以下几点: 1.手机需要获得可以访问网络的权限: 2.导入的jdbc驱动的版本需要与mysql服务器的版本相近: 3.mysql默认的访客是只允许本机(localhost),不允许其他主 ...
- 被遗忘的having
清明节后公司网站搞活动主要功能很简单就是实现一个消费送的功能.比如, 当天消费金额满5000 返回10%,5000 及以下 返 7% 的功能.本身这个功能不是很难,但是 这个功能跟上次的一个 新用户 ...