在看了Google Devs 的最新视频后,我决定制作一张英国的区域地图.在这个网站上提到的一些可能性,我已经不得不解雇*
所以我最终使用这个网站(数据下载的示例页面):http://mapit.mysociety.org/area/11804.html
注意GeoJSON下载作为第三个链接下来?它的文件大小约为1Mb.当我第一次尝试将它与我的地图一起使用时:
function initMap(){
var ukc = new google.maps.LatLng(54.8, -4.6);
var mapOptions = {
zoom: 5,
center: ukc
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
map.data.loadGeoJson('http://local.mapsite.com:8080/app/jsondata/eastern.json');
}
$(document).ready(function(){
initMap();
});
Run Code Online (Sandbox Code Playgroud)
我收到了上述错误:Uncaught InvalidValueError:不是Feature或FeatureCollection
谷歌搜索错误回来没有任何用处.
我想也许这是野兽的庞大规模所以我使用mapshaper.org将它缩小到一个更易于管理的10K.仍然没有运气!
也许我的GeoJSON格式错误了?但是怎么可能会考虑在mapit.org上工作,但是我找到了这个用于绘制GeoJSON数据的精彩网站:http://geojsonlint.com/ - linting有效!显然,GeoJSON工作得非常好,它在英国的所有荣耀中绘制了我的东英吉利亚多边形(注意geojsonlint使用OpenStreetMap).但仍然没有运气
希望我可以结合区域并压缩,同时我绝望地认为topojson会起作用.我试过 - 我仍然有同样的错误.这是我在Google云端硬盘上分享的topojson文件的链接:someregions.json 没有运气.
当前的GeoJSON文件启动{"bbox":[ - 0.745702,51.448473,1.767999,52.98991],"type":"GeometryCollection","geometry":...
我补充说:
{"type": "Feature", "bbox":[-0.745702,51.448473,1.767999,52.98991],"type":"GeometryCollection","geometries": …
Run Code Online (Sandbox Code Playgroud) 我在使用unicode和Python时非常混乱.这似乎是一种常见的焦虑,我尝试过使用其他解决方案,但我无法理解它.
class Product(Base):
id = Column('product_id', Integer, primary_key=True)
name = Column('product_name', String(64)) #Tried using Unicode() but didn't help
Run Code Online (Sandbox Code Playgroud)
@view_config(renderer='json', route_name='products_search')
def products_search(request):
json_products = []
term = "%%%s%%" % request.params['term']
products = dbsession.query(Product).filter(Product.name.like(term)).all()
for prod in products:
json_prod = {'id': prod.id, 'label': prod.name, 'value': prod.name, 'sku': prod.sku, 'price': str(prod.price[0].price)}
json_products.append(json_prod)
return json_products
Run Code Online (Sandbox Code Playgroud)
我得到了json模块报告的编码错误(它被称为此路由的渲染器),如下所示:
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 37: invalid start byte
Run Code Online (Sandbox Code Playgroud)
罪魁祸首是prod.name值中的" - "(短划线符号).全堆栈跟踪这里 …
我知道这是一个常见的问题,但我看到很多关于frankenstein ini文件的例子没有任何意义.基于具有不同文件系统布局的不同系统:
例如/ etc/uwsgi/vassals -vs-/etc/uwsgi/apps- {enabled | available} -vs- solo launch uwsgi
因此,请在14小时脑损伤后爱我的理智:
我有一个基本的Flask项目,有这个布局:
/srv/py/mylovelyapp/mylovelyapp.py
/models.py
/database.py
/static/
/templates/
Run Code Online (Sandbox Code Playgroud)
我的ini文件的怪物(位于/etc/uwsgi/apps-enabled/mylovelyapp.ini)是:
[uwsgi]
plugins = python
base = /srv/py/mylovelyapp
app = mylovelyapp
callable = app
gid = www-data
uid = www-data
vhost = true
socket = 127.0.0.1:3031
master = true
processes = 1
harakiri = 20
limit-as = 128
Run Code Online (Sandbox Code Playgroud)
在/etc/nginx/sites-enabled/mysite.conf中的nginx配置:
server {
listen 80;
server_name www.mylovelyapp.co.uk mylovelyapp.co.uk;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include …
Run Code Online (Sandbox Code Playgroud) 我在Pyramid中使用SQLAlchemy时遇到了一些问题.虽然我可以找到我需要的例子,但它们通常很短而且缺乏.所以我最终得到的补丁代码几乎没有任何意义.所以我希望有人可以更充分地说明我需要做些什么.
我有4个数据库都具有相同的架构.我希望能够从一个金字塔应用程序处理它们,有时列出来自所有4个数据库的所有"订单",有时只列出"site1"中的所有"订单".由于模式相同,我还为数据库使用相同的模型类.
我已经尝试了sqlahelper和普通的SQLAlchemy而没有运气.下面的代码使用sqlahelper,但我很乐意使用任何有效的方法:
__init__.py
site1_eng = engine_from_config(settings, prefix='site1.')
site2_eng = engine_from_config(settings, prefix='site2.')
site3_eng = engine_from_config(settings, prefix='site3.')
sqlahelper.add_engine(site1_eng, 'site1_eng')
sqlahelper.add_engine(site2_eng, 'site2_eng')
Run Code Online (Sandbox Code Playgroud)
views.py
def site_orders(request):
site = request.matchdict['site']
db_eng = sqlahelper.get_engine(("%s_eng" % (site)))
conn = db_eng.connect()
dbsession = sqlahelper.get_session()
dbsession.configure(bind=conn)
orders = dbsession.query(Order).order_by(Order.cdate.desc())[:100]
return dict(orders=orders, pagetitle=(site+" Orders"))
Run Code Online (Sandbox Code Playgroud)
怎么了?
好吧,我希望它会根据URL切换数据库,它确实!但是,选择哪个似乎是完全随机的.所以/ orders/site1 /有时会转到site2数据库,有时会转到site3.刷新通常会每次都切换它选择的数据库.其他网址也是如此.
它几乎就好像会话没有绑定到数据库并且它的选择当时在会话中发生了什么?这可能没有意义 - 我对SQLAlchemy的理解并不是很好.
真的希望有人可以提供帮助,因为这一切都取决于能否在视图中快速轻松地切换数据库,而且目前似乎完全无法控制它.
注意:我最初尝试关注和更改Pyramid SQLA + URL Dispatcher教程,该教程使用:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Run Code Online (Sandbox Code Playgroud)
但是在找到sqlahelper时我删除了它.如果我应该使用它让我知道.