从现有数据库开始,我想更新它的架构。我改变了我的一个模型,然后运行
python manage.py makemigrations myapp
Run Code Online (Sandbox Code Playgroud)
它创建迁移,正确定义新表和列。示例输出:
Migrations for 'myapp':
0001_initial.py:
- Create model Foo
- Add field Bar
- ...
Run Code Online (Sandbox Code Playgroud)
然后我应用迁移:
python manage.py migrate --database mydb
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
Operations to perform:
Apply all migrations: admin, myapp, contenttypes, sessions, auth
Running migrations:
Rendering model states... DONE
Applying admin.0002_logentry_remove_auto_add... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Run Code Online (Sandbox Code Playgroud)
它似乎奏效了。Git告诉我“mydb”对应的sqlite文件已经改变了。但是,它没有将我的新表和列放在里面,而是删除了内容,留下了带有旧架构的空表。
我究竟做错了什么 ?
我一直在为我的最新应用程序构建React组件.我知道我可以重复使用有助于保持代码干净的组件.
我想知道我是否可以重用功能.我知道必须要有办法.
现在我有三个使用密码验证功能的组件.
passwordValidation() {
const length = this.state.password.length;
if (length > 7) return 'success';
else if (length > 4) return 'warning';
else if (length > 0) return 'error';
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个帮助文件--helpers.jsx并添加:
export function passwordValidation() {
const length = this.state.password.length;
if (length > 7) return 'success';
else if (length > 4) return 'warning';
else if (length > 0) return 'error';
}
Run Code Online (Sandbox Code Playgroud)
然后我将它导入我的组件
import { passwordValidation } from '../helpers.jsx'
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的构造函数中绑定"this"时,我不断收到错误"passwordValidation is a function".
如果我在输入标记中调用它,我将"无法读取未定义的属性状态".
只是想看看我哪里出错了.如果我在课堂上定义并添加,一切都有效this.passwordValidation = this.passwordValidation.bind(this)
.
如果这不是最佳实践,我会回到我正在做的事情,但我假设我应该能够导入函数以使生活更轻松,我的代码更清晰!
使用像这样的表定义:
class Test(_tableTag: Tag) extends Table[TestRow](_tableTag, "test") { ... }
Run Code Online (Sandbox Code Playgroud)
如何从一个实例中取回表名(Tag"test")Test
?
问题是我可以完美地执行一些查询db run TableQuery[Test].result
,但是要编写原始sql,我需要表名.
如果具体类的相同方法具有不同的return(sub)类型,我无法弄清楚如何指定抽象类A的方法的返回类型:
abstract class A {
def method: List[Common (?)] // I want to force all subclasses to define this method
}
class B1 extends A {
def method(a,b,c): List[Sub1] = {...}
}
class B2 extends A {
def method(a,b,c): List[Sub2] = {...}
}
Run Code Online (Sandbox Code Playgroud)
我试图定义一个共同的特点Sub1
和Sub2
:
abstract class Common // or abstract class
case class Sub1 extends Common
case class Sub2 extends Common
Run Code Online (Sandbox Code Playgroud)
但我一直这样:
Compilation error[class B1 needs to be abstract,
since method "method" in class A of …
Run Code Online (Sandbox Code Playgroud) 我的代码是用python 3编写的,它的目的是打印出回文.它应该遍历2个3位数字的所有回文产品,如下所示:
mylist=[]
for i in range(999,99,-1):
for x in range(999, i-1, -1,):
number=i*x
number=str(number)
if number==number[::-1]:
#print(number)
mylist.append(number)
mylist=mylist.sort(reverse=True)
print(mylist)
Run Code Online (Sandbox Code Playgroud)
请注意已注释的打印件.当它仍然存在时,应该打印出的所有回文都出来了.当我运行我的代码而没有print
语句时,控制台只打印出"无".
据我所知,我的逻辑是有序的,为什么会发生这种情况呢?编辑:此外,当我按相反顺序对列表进行排序时,首先是99999.我认为这是因为python看着连续的9并且认为它是最大的.但是,有没有一种简单的方法来获得实际最大的数字?
django ×1
javascript ×1
palindrome ×1
python ×1
python-3.x ×1
reactjs ×1
redux ×1
reverse ×1
scala ×1
slick-3.0 ×1