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 ...
随机推荐
- modal template
<div class="modal fade" id="tmp_order_modal" tabindex="-1" role=&qu ...
- 解决ie浏览器下载apk或ipa变为zip
Tomcat/conf/web.xml <mime-mapping> <extension>apk</extension> <mime-type>app ...
- Django项目的创建与管理和pycharm与Github的秘密
随笔 - 174 文章 - 21 评论 - 19 Django项目创建与管理 1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关 ...
- php中in_array一些问题
var_dump(in_array(1,['s','1fsdf',12])); // true var_dump(in_array(0,[4,'erdd'])); // true 因为是要用值与数组 ...
- python网络爬虫《http和https协议》
一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...
- Javascript(es2016) import和require用法和区别
http://blog.csdn.net/chinaycheng/article/details/52559439 其中这个总结很到位: 加载方式 规范 命令 特点 运行时加载 CommonJS/AM ...
- 第五章 Inheritance继承
[继承] Java不支持多重继承 - 每个子类只有一个超类. 不是将成员变量声明为静态,更好的做法是将University实例化为对象,然后使用该对象访问其成员,如下所示: [抽象类] 可以包含或者不 ...
- swift - 本地通知2 - 啰嗦版
1. import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var windo ...
- iOS 集成极光推送
最近极光推送更新到V3版本之后,推送又不成功!配合服务器联调了半天,发现是服务器环境配置有问题. 想着就把极光推送的步骤给记录下来. 一.配置push证书 这个可以到极光文档里写,很详细 二.导入必要 ...
- JFinal Web开发学习(一)开启HelloWorld
初次接触JFinal框架,接触过MVC思想,接触过Spring. JFinal官网: http://www.jfinal.com/ 之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 官方推荐 ...