我正在学习 Flask,有一个关于动态路由的问题:是否可以传入接受的路由列表?我注意到该any转换器具有潜力,但很难找到它的使用示例。基本上我有不同的端点组,它们应该在它们之间触发相同的操作。这就是我的意思:
cities = [New York, London, Tokyo]
food = [eggs, bacon, cheese]
actions = [run, walk, jump]
Run Code Online (Sandbox Code Playgroud)
我可以做类似的事情
@app.route('/<string:var>', methods = ['GET'])
def doSomething(var):
if var in cities:
travel(var)
else if var in food:
eat(var)
else if var in action:
perform(var)
Run Code Online (Sandbox Code Playgroud)
但我有什么办法可以做这样的事情吗?
@app.route('/<any(cities):var>', methods = ['GET'])
def travel(var):
@app.route('/<any(food):var>', methods = ['GET'])
def eat(var)
@app.route('/<any(actions):var>', methods = ['GET'])
def perform(var)
Run Code Online (Sandbox Code Playgroud)
此外,我希望这些列表是动态的。所以我真正想要的是这样的:
cities = myDb.("SELECT cities FROM country")
@app.route('/<any(cities):var>', methods = ['GET'])
def travel(var):
Run Code Online (Sandbox Code Playgroud)
有什么方法可以实现这一目标,还是我被困在一条动态路线中阻塞所有内容?
我正在尝试通过一个有趣的项目 - 一个Facebook消息分析器来学习Python.我已经从Facebook上下载了我的数据,其中包括一组html文件.其中一个 - messages.htm - 包含我的所有消息.我的目标是获取这个html文件并将其解析出来输出有趣的数据,如最常见的单词,消息的数量等.
问题是我的messages.htm文件是270MB.我可以在vim中检查它,但文件中有一些有趣的模式,我想比较html代码与它在浏览器上实际呈现的方式,这样我就可以将代码与视觉效果进行比较,更好地了解什么是继续 但是当我尝试在Firefox中打开这个文件时,FF会崩溃.我可以在Chrome中打开它,但它只是开始加载所有消息,并且大约10分钟内它甚至没有完全加载单个消息线程,无论滚动条有多小.所以这是不可行的.
甚至可以完全呈现如此大而长的HTML文件吗?
我花了过去一小时的时间来浏览Google和SO.很抱歉添加另一个,但没有一个答案对我有用.
我的目录结构/VM/repo/project是:
__init__.py
scripts/
getSomething.py
__init__.py
classes/
project.py
db.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
====================
getSomething.py
from ..classes import project
from ..classes import db
Run Code Online (Sandbox Code Playgroud)
====================
project.py
class PROJECT:
def __init__(self):
stuff
Run Code Online (Sandbox Code Playgroud)
====================
db.py
class DB:
def __init__(self):
stuff
Run Code Online (Sandbox Code Playgroud)
====================
当我试图跑
python getSomething.py
我收到了错误
Traceback(最近一次调用最后一次):
在<module>中的文件"scripts/getSomething.py",第4行
来自..classes导入项目
ValueError:在非包中尝试相对导入
我在这里错过了什么?
所以我正在做一个项目来学习 SQL、Python 和一些服务器端的东西,经过多次搜索,我在这一点上很难过。我想创建两个相同的表,我有以下代码:
import psycopg2 as db
import json
with open('config.json', 'r') as f:
config = json.load(f)
conn = db.connect(user=config['dbuser'], database=config['dbname'], host=config['dbhost'], password=config['dbpass']);
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS A
(
city TEXT,
location POINT NOT NULL,
eta INTEGER,
time TIMESTAMP WITH TIME ZONE NOT NULL,
holiday BOOLEAN,
PRIMARY KEY (location, time)
);""")
Run Code Online (Sandbox Code Playgroud)
还有表B,格式相同,其中A和B是不同的服务。运行此程序时,我得到:
Traceback (most recent call last):
File "dbsetup.py", line 18, in <module>
);""")
psycopg2.ProgrammingError: data type point has no default operator class for access method …Run Code Online (Sandbox Code Playgroud)