导读:本篇文章首席CTO笔记来给大家介绍有关用django怎么创建数据库表的相关内容,希望对大家有所帮助,一起来看看吧。
python编程--django框架,想要添加一个表进到数据库里
代码部分:
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=30)
grade = models.IntegerField()
执行部分 :
python manage.py makemigrations
python manage.py migrate
Django里面怎么实现数据库视图啊 就是虚拟表
正经回答:先在数据库中建立好视图,然后django中建立对应的model。表所对应的类下面再建立一个Meta类,大致如下
class ViewModel(models.Model):
\"\"\"这个model类对应你所建立好的视图\"\"\"
class Meta(object):
\"\"\"同理,该方法可用于使用mysql中任何已有的表,不仅是视图\"\"\"
db_table = \'your_view\' #显式指定表名,也就是你建立的视图的名字
managed = false #默认是ture,设成false django将不会执行建表和删表操作
# 建立字段间的映射
# 需要注意的是,必须设一个字段为主键
# 不然django会自动创建一个id字段为主键,引发错误
百度知道越来越辣鸡了,全是答非所问的。
django使用已有的数据库表怎么建立model
在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用。可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了。了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表。
假如在Django存在models如下:
[python] view plain copy
from django.db import models
# Create your models here.
class Sciencenews(models.Model):
id = models.CharField(max_length=36,primary_key=True)
first_module = models.CharField(max_length=30,default=\"News\")
second_module = models.CharField(max_length=30,default=\"Latest News\")
title = models.CharField(max_length=300)
author = models.CharField(max_length=60,null=True)
publish_date = models.CharField(max_length=35,null=True)
content = models.TextField(null=True)
crawl_date = models.CharField(max_length=35,null=True)
from_url = models.CharField(max_length=350,null=True)
执行数据迁移命令:
[python] view plain copy
python manage.py makemigration
python manage.py migrate
会在数据库中生成名称为show_sciencenews的数据表。show为应用名称,此处我的应用名称为show。可以看到Django创建表的命名规则:应用名_模型名。
我的存储爬取到的数据的表格名称原来为science_news,想要Django使用它,而不是创建新的表,只需要把的它的名称改为:应用名_要与该表映射的models名称,在此处我改为show_sciencenews。然后使用如上的数据迁移命令,这时可能会提示数据表已经存在的错误,不用理会,models已经和数据表映射上了。接下来只需要正常使用models和数据表就可以了。
怎么为django配置一个mysql数据库
修改setting.py里面的DATABASES元组为
DATABASES = {
\'default\': {
\'ENGINE\': \'django.db.backends.mysql\',
\'NAME\': \'books\', #你的数据库名称
\'USER\': \'root\', #你的数据库用户名
\'PASSWORD\': \'\', #你的数据库密码
\'HOST\': \'\', #你的数据库主机,留空默认为localhost
\'PORT\': \'3306\', #你的数据库端口
}
}
INSTALLED_APPS = (
\'books\',#你的数据库名称
)
在mysql里面创建books数据库
检查配置是否有语法错误
使用python manage.py sqlall books 显示mysql语法
使用python manage.py syncdb同步模型中的数据库
创建成功!
django orm创建数据表
Django里面,管理数据库和sqlarchemy类似,也是通过orm框架来实现的。所有的数据库的建立,都是在model.py里面通过类来实现的。
首先看看如何创建一个单表:
a. 先定义一个类,继承models.Model, 然后根据需求定义参数,这些参数的类型和变量后面会进一步阐述
models.py
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
b. 注册app
settings.py
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘app01‘,
]
c.执行命令。 第一条命令会生成一个初始化文件,第二个命令会生成对应的表
python manage.py makemigrations
python manage.py migrate
这样,就在PyCharm自带的sqlite数据库里面成功的生成了一个app01_UserInfo的表。这个表默认会有一个自增的id作为主键,另外两个字段是我们通过类创建的。
d. 如果希望使用mysql,因为Django默认使用了MySqldb模块,这个在3.0版本里面不存在,会直接报错。我们需要改为pymysql的模块,方法如下:
在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()
2. 对于单表的增删改查询
查询
获取所有结果,获取到的结果是一个QuerySet的类似列表的对象,每一个元素本身又是一个对象,包括了id,name,password等属性。
obj = models.UserInfo.objects.all()
QuerySet [UserInfo: UserInfo object, UserInfo: UserInfo object, UserInfo: UserInfo object, UserInfo: UserInfo object, UserInfo: UserInfo object]
可以通过filter进行过滤,相当于sql的where语句,因为结果也是QuerySet,因此需要再使用first()获取第一个值
obj = models.UserInfo.objects.filter(id=nid).first()
增加
models.UserInfo.objects.create(username=u,password=p,user_group_id=3)
删除,可以在filter的基础上进行删除
models.UserInfo.objects.filter(id=nid).delete()
修改,有两种常见方式
第一个方式
models.UserInfo.objects.filter(id=nid).update(username=u,password=p)
第二个方式
obj=models.UserInfo.objects.filter(id=nid)
obj.username=u
obj.save()
结语:以上就是首席CTO笔记为大家整理的关于用django怎么创建数据库表的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~
以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!
版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。