首页 > 数据库 >Django使用数据库

Django使用数据库

时间:2023-04-02 22:01:36浏览次数:35  
标签:pollsapp models 数据库 py Django 使用 contrib django

一、数据库配置

使用前要设置时区TIME_ZONE,TIME_ZONE = 'UTC'

还要注意setting.py配置文件头部的INSTALLED_APPS选项(已安装程序)。确认自建的pollsapp应用已经安装到总项目容器中了。

就是添加一句话:‘pollsapp.apps.PollsappConfig’,

其中 pollsapp 是你创建应用的名字,apps表示应用类别(app应用(我觉得不变)),PollsappConfig表示应用配置,它是每个应用目录下apps.py中的唯一一个函数,粘贴过来就行。

如果没有把应用添加到已安装表中,创建数据表时候,会提示No installed app with label 'pollsapp'.

INSTALLED_APPS = [
    'django.contrib.admin',#管理后台站点
    'django.contrib.auth',#用户认证授权系统。
    'django.contrib.contenttypes',#内容类型框架
    'django.contrib.sessions',#会话框架
    'django.contrib.messages',#消息框架
    'django.contrib.staticfiles',#管理静态文件的框架
  ‘pollsapp.apps.PollsappConfig’,#自己创建的应用
] #contrib贡献,出力

在使用应用前,需要在数据库中创建一些表,用命令:(数据库配置)

python manage.py migrate

migrate命令,检查INSTALLED_APPS选项设置,为每个应用创建需要的数据表。

二、创建模型

也就是数据库结构设计和附加的其他元数据。

模型写在某个应用目录的models.py模型文件中(期初也是个空文件)。

from django.db import models

# Create your models here.
class Question(models.Model):#定义了Question模型,并继承Model类
    question_text = models.CharField(max_length=200) #创建了一个CharField类型,放问题描述字段
    pub_date = models.DateTimeField('date published')#创建了一个DateTimeField类型,放发布时间

class Choice(models.Model):#定义了Choice模型,并继承Model类
    question = models.ForeignKey(Question,on_delete=models.CASCADE)#创建了一个问题Question类型的外键(question)字段属性
    #使用ForeignKey(外键)定义了一个关系,标识每个选项(Choice)对象都关联到一个问题(Question)对象。
    choice_text = models.CharField(max_length=200)#创建了一个CharField类型,放选择描述 字段
    votes = models.IntegerField(default=0)#创建了一个IntegerField类型,放投票数(votes)字段

Django模型支持所有常用的数据库关系:多对一、一对多、多对多。

三、激活

定义了数据库模型后还需要激活才能使用。模型相当于建数据库的想法,哪块放什么样的数据,激活相当于按照这个想法去做出来。

python manage.py makemigrations pollsapp

提示   - Create model Question
    - Create model Choice
激活成功。

四、数据库迁移

python manage.py migrate pollsapp 0001

五、模型修改汇总

1.编辑models.py文件

2.运行 python manage.py makemigrations,为模型改变生产迁移文件

3.运行python manage.py migrate ,执行数据库迁移。

 

标签:pollsapp,models,数据库,py,Django,使用,contrib,django
From: https://www.cnblogs.com/light-shadow/p/17281492.html

相关文章

  • 使用vue实现方法、计算属性、侦听器完成的简易计算器
    第一步:创建一个新的web项目(Jisuanqi),引入js文件第二步:搭好基本框架,为后面写代码打好基础(这里更改一个小错误:把class="app"改为id="app") 第三步:编写输入框效果图展示如下: 第四步:添加“计算”按钮第五步:编写实例化 结果显示: 最后完整代码展示1<!DOCTYPEh......
  • mybatis plus的简单使用
    mybatisplus作用就是可以少些sql,实现对数据一系列操作的功能首先查询所有数据根据指定的时间查询根据时间范围查询,时间倒序  其中QueryWrapper叫做条件构造器sql表结构,直接放到sql工具执行就好/*SQLyogUltimatev10.00Beta1MySQL-5.7.22-log:Database-y......
  • 关于Date使用不当的bug
    关于Date使用不当的bug1、背景用户调用接口,传入一个参数分钟,表示想要查询距离现在多少分钟的记录。有的时候会查不到记录。2、排查过程大致代码。获取当前的时间的date对象now,通过now的时间戳计算前beforeMinute的时间戳,转换成date对象查询executeTime>=before&&exec......
  • 04_靶机Kioptrix1.2:CMS漏洞利用,使用ht编辑器修改sudoers文件提权,mysql查询
    思路:发现主机后进行目录扫描,发现登录口标注了CMS的版本,查看该类型CMS有没有漏洞,针对漏洞去github搜索脚本,拿到脚本后运行得到靶机的初级Shell,根据靶机内的文件内容指示使用ht编辑器,利用编辑器去修改用户的权限然后提权,拿到root权限结束基操代码不再粘贴首先进行目标靶机地址的......
  • Day 20 20.2 数据库之MySQL基础
    基本概念前面的学习中我们提到,mysql是关系型数据库,所以我们要操作mysql就需要使用SQL(结构化查询语言)。SQL规范1.在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写),参数区分大小写。建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、字......
  • Day 20 20.3 数据库之Python操作MySQL
    Python操作MySQLimportpymysql#打开数据库连接db=pymysql.connect(host='localhost',user='root',passwd='...',port=3306,datebase='...')print('连接成功!')#使用cursor()方法创建一个游标对象cursorcursor=db.cursor()#......
  • 快速使用ChatGpt Web Server
    快速使用ChatGptWebServerChatGptWebServer是使用BlazorServer模式部署的一个服务,所有的逻辑和代码执行都会在服务器执行,然后通过SignalR传输到前端渲染。通过这样模式,我们部署ChatGptWebServer只需要新加坡服务器,不需要在搭建Gateway做中间层转发,并且ChatGptWebServer......
  • Day 21 21.1 数据库之redis
    Redisredis介绍定义Redis(RemoteDictionaryServer,远程字典服务)是一个使用ANSIC编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,是NoSQL数据库。redis的出现主要是为了替代早期的Memcache缓存系统的。map内存型(数据存放在内存中)的非关系型(nosql)key-......
  • Day 21 21.2 数据库之Python操作redis
    Python操作redis(1)连接redis#方式1importredisr=redis.Redis(host='127.0.0.1',port=6379)r.set('foo','Bar')print(r.get('foo'))#方式2importredispool=redis.ConnectionPool(host='127.0.0.1',port=63......
  • Day 21 21.3 数据库之MongoDB
    MongoDB一般爬虫使用的数据库,是根据项目来定的。如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里,如果自选的话,mysql和mongodb用的都是比较多的。但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。......