假设有一个1和0的2D网格,例如 -
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
Run Code Online (Sandbox Code Playgroud)
网格被"折叠"以形成1个更少行和1个更少列的更小网格,因此上面的示例将"折叠"以形成3行3列的网格.
新值由以下规则确定 -
new_grid[i][j] is dependent on
i) old_grid[i][j],
ii) old_grid[i][j+1],
iii) old_grid[i+1][j]
iv) old_grid[i+1][j+1]
If exactly one of the above values are 1, then new_grid[i][j] will be 1, else 0.
Run Code Online (Sandbox Code Playgroud)
因此,对于例如网格,出来的[0][0], [0][1], [1][0] and [1][1],只有[0][1]就是1,所以[0][0]在新的网格将是1.类似地,出[0][1], [0][2], [1][1] and [1][2],两者[0][1] and [1][2]都1,所以[0][1]在new_grid将0.
输入以new_grid …
因此,正如我最近了解到的,default我们在 Django 字段中指定的 仅仅是为了填充预先存在的行,并且在数据库级别上不充当“真正的”默认值。column_default这可以通过从数据库 shell查找来验证。
如果我理解正确的话,defaultPostgres 使用它在没有输入时输入值。如果是这样,那么我们应该无法在不提供默认值的情况下在 Django 中创建新对象,对吧?
对于前-
class MyModel(models.Model):
name = models.CharField(max_length=255)
status = models.BooleanField(default=True) # new field added
Run Code Online (Sandbox Code Playgroud)
对于上述模型,default仅用于回填预先存在的行的新添加字段。它实际上并没有在数据库级别设置默认值。
column_name | column_default
-------------+----------------
mymodel |
Run Code Online (Sandbox Code Playgroud)
但如果是这样,我不应该能够运行这个查询 -
MyModel.objects.create(name='test')
Run Code Online (Sandbox Code Playgroud)
因为没有“真正的”默认值。但我可以,但我不明白为什么。
谢谢你!
对于SQLAlchemy中的两个模块的使用,我有些困惑。这是我的代码:
Base = declarative_base()
class Restaurant(Base):
__tablename__ = 'restaurant'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
class MenuItem(Base):
__tablename__ = 'menu_item'
name =Column(String(80), nullable = False)
id = Column(Integer, primary_key = True)
description = Column(String(250))
price = Column(String(8))
course = Column(String(250))
restaurant_id = Column(Integer,ForeignKey('restaurant.id'))
restaurant = relationship(Restaurant)
Run Code Online (Sandbox Code Playgroud)
我知道ForeignKey用于定义menu_item表的restaurant_id列与restaurant表的id列之间的外键关系。但是为什么要使用restaurant = Relationship(Restaurant)?
这是这个问题的后续内容。虽然我可以在原始 SQL 中编写非二进制 LIKE 查询,例如 - SELECT COUNT(*) FROM TABLE WHERE MID LIKE 'TEXT%',但我想知道是否可以通过 Django ORM 来实现。
和似乎startswith都contains在使用二进制模式搜索。
django ×2
python ×2
algorithm ×1
backtracking ×1
django-1.9 ×1
django-orm ×1
mysql ×1
postgresql ×1
sqlalchemy ×1