python flask 项目结构
2024-10-19 11:36:45
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 可以是任意值。。
最新文章
- 安装部署Windows服务脚本
- jQuery Mobile页面返回无需重新get
- 使用laravel的Eloquent模型获取数据库的指定列
- AX2012全新的批处理方式
- 时间日期设置--ctime头文件
- JAVA字符串格式化String.format()的使用
- java连接mysql的一个小例子
- .NET面试题系列
- 修改Android默认背光值
- SQL Server (MSSQLSERVER) 服务因 找不到指定的模块。 服务特定错误而停止。
- 3890: [Usaco2015 Jan]Meeting Time( dp )
- 通过createObjectURL实现图片预览
- Jenkins结合.net平台综合之监听git仓库并自动摘取最新代码编译
- 记一次免费让网站启用HTTPS的过程
- 第五章 CSS常用属性笔记
- 【HDOJ1045】【DFS】
- 获取【酷我音乐】歌曲URL地址
- 【bzoj3573】[HNOI2014]米特运输 树形dp
- Codeforces 807 A Is it rated?
- Codeforces Round #433 (Div. 2)【A、B、C、D题】