小编bba*_*les的帖子

sqlalchemy和SQLite共享缓存

:memory:当使用特殊URI打开数据库时,SQLite支持数据库的"共享缓存" (根据sqlite.org):

[T]他可以通过两个或多个数据库连接打开相同的内存数据库,如下所示:

rc = sqlite3_open("file::memory:?cache=shared",&db);

我可以通过利用这个在Python 3.4 URI参数sqlite3.connect():

sqlite3.connect('file::memory:?cache=shared', uri=True)
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法为SQLAlchemy工作:

engine = sqlalchemy.create_engine('sqlite:///:memory:?cache=shared')
engine.connect()
...
TypeError: 'cache' is an invalid keyword argument for this function
Run Code Online (Sandbox Code Playgroud)

有没有办法让SQLAlchemy使用共享缓存?

编辑:
在Python 3.4上,我可以使用creator参数create_engine来解决问题,但问题仍然存在于其他Python版本中:

creator = lambda: sqlite3.connect('file::memory:?cache=shared', uri=True)
engine = sqlalchemy.create_engine('sqlite://', creator=creator)
engine.connect()
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

17
推荐指数
2
解决办法
2195
查看次数

大笔金额的子集和

子集和问题是众所周知的是NP完全性,但也有不同的技巧,有些快速解决问题的版本.

通常的动态编程算法需要随目标总和增长的空间.我的问题是:我们可以减少这个空间要求吗?

我试图用适度数量的元素解决子集和问题,但目标总和非常大.对于指数时间算法(和快捷方法),元素的数量太大,并且目标总和对于通常的动态编程方法来说太大.

考虑这个解决问题的玩具问题.给定集合A = [2, 3, 6, 8]查找总和的子集数量target = 11.枚举所有子集我们看到答案是2:(3, 8)(2, 3, 6).

动态编程解决方案当然会给出相同的结果 - ways[11]返回2:

def subset_sum(A, target):
    ways = [0] * (target + 1)
    ways[0] = 1
    ways_next = ways[:]
    for x in A:
        for j in range(x, target + 1):
            ways_next[j] += ways[j - x]
        ways = ways_next[:]

    return ways[target]
Run Code Online (Sandbox Code Playgroud)

现在考虑定位target = 1100集合的总和A = [200, 300, 600, 800] …

python algorithm dynamic-programming subset-sum

5
推荐指数
1
解决办法
3716
查看次数

requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8000): 最大重试次数超过 url: /api/1/

我正在尝试在DjangoPython文件之间进行通信,但出现以下错误:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8000): Max retries exceeded with url: /api/1/ (Caused by NewConnectionError(': Failed to build a new connection: [WinError 10061]无法建立连接,因为目标机器主动拒绝它'))

我创建了一个名为test.pyIn a Djangoapp的 Python 文件并尝试在它们之间进行通信。我的Python 文件包含以下代码:

import requests
BASE_URL='http://127.0.0.1:8000/'
ENDPOINT='api/'
def get_resource(id):
    resp=requests.get(BASE_URL+ENDPOINT+id+'/')
    print(resp.status_code)
    print(resp.json()) 
id=input("Enter some ID: ")
get_resource(id)
Run Code Online (Sandbox Code Playgroud)

Models.py 包含:-

from django.db import models

# Create your models here.
class Employee(models.Model):
    eno=models.IntegerField()
    ename=models.CharField(max_length=70)
    esal=models.FloatField()
    eaddr=models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

Admin.py 包含:-

from django.contrib import admin
from testapp.models import Employee
# Register your …
Run Code Online (Sandbox Code Playgroud)

python api django django-rest-framework

5
推荐指数
2
解决办法
2万
查看次数