接着上次的项目继续,首先需要运行python manage.py migrate,该命令会在数据库文件中创建些基本的配置表。(这里使用的是sqlist3 官方自带的)
SQLiteSpy可视化工具,用工具打开db.sqlite3就会看到创建了这些表。
官方的小例子是投票功能,我也就按着官方例子继续。
接下来创建些新的表,Question和choice两个表,修改myapp/models.py文件
from django.dbimport models
# Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
Model函数API可以查看官方文档,其实这里也就是创建两种表和一些字段。
然后在mysite/settings.py文件下INSTALLED_APPS中添加我们的配置如下
python manage.py makemigrations myapp命令生成相应的sql语句
有兴趣的也可以打开生成的文件看看,或者python manage.py sqlmigrate myapp 0001输出sql信息也可以。这里主要就是看看语句是否正确,或者有哪里需要改动都可以手动改正,这里官方说明sql语句的生成和配置的数据库有关,也就是说不同数据库的sql语句都会自己适配,不需要手动修改(django是真的爽)。另外还提供python manage.py check可以帮助检查项目问题,不会对数据库进行操作。
接下来在执行python manage.py migrate然后我们创建的两个表就会生成。
这就是django数据迁移的基本使用,只需要牢记这三步就好
1.修改app/models.py,添加配置
2.运行python manage.py makemigrations app生成迁移脚本
3.运行python manage.py migrate进行数据库操作
关于django manage.py更多的工具可以查看官方文档。
如果对django shell操作有兴趣的可以下官方API 运行python manage.py shell
接下来使用django的用户管理工具,admin。
首先创建一个用户python manage.py createsuperuser,输入用户名、邮箱、密码。
启动服务器python manage.py runserver 打开浏览器http://127.0.0.1:8000/admin,输入账户密码。
这里没有看到我新建的表管理,所以还需在app/admin.py文件内添加我们的表。
刷新网页
这里就可以看到我们的表了,功能就是增删改查相关,具体自己体验下就好。
总结下:
虽然用的官方自带的sqlite3,但是应该换成别的也是这样用,使用到现在就一个感觉“爽”。django开发果真效率是真是不想多解释,谁用谁知道。至于在深入的问题我还不清楚,现在也属于自己慢慢摸索。