Django 入门学习总结3

1、创建数据库

打开mysite/settings.py文件,可以看到我们使用Python中已包含的默认的数据库SQLite,也可以使用其他的数据库,如Oracle、Mysql等。里面也包含时区、语言等设置信息。

在使用数据库和表之前,输入下面的命令:

python manage.py migrate

输出信息为:

生成和数据库有关的管理、授权、内容类型和session等内容。

2、建立数据库表模型

模型与数据库中表结构相关,如字段的长度、类型等信息。

在投票系统中,建立了两个数据库表相关的模型:Question和Choice,问题包含问题和产生的日期,选项包含选项和投票的计数。Question和Choice是一一对应的关系。

编辑polls/models.py文件,内容如下:

from django.db import models

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)

上述类中的变量和数据库中表建立联系。可以通过上面创建数据库中的表和Django Web框架的模型对象。

3、激活模型

编辑mysite/settings.py文件,在INSTALLED_APPS 中,添加一条语句:"polls.apps.PollsConfig",如下所示:

INSTALLED_APPS = [
        "polls.apps.PollsConfig",
        "django.contrib.admin",
        "django.contrib.auth",
        "django.contrib.contenttypes",
        "django.contrib.sessions",
        "django.contrib.messages",
        "django.contrib.staticfiles",
    ]

现在Django框架知道包含有投票系统模块。完成以上步骤后,运行命令:

python manage.py makemigrations polls

则创建相应的模型。

运行命令:

python manage.py sqlmigrate polls 0001

则生成表结构和索引等信息,如下图所示。

运行python manage.py migrate,则在数据库中创建相应的模型和表。

4、与Django的交互

通过python manage.py shell命令进入与Django的交互。

通过输入以下命令,

from polls.models import Choice, Question

from django.utils import timezone

q = Question(question_text="What's new?", pub_date=timezone.now())

q.save()

则在数据库表中插入了一条记录,如下图所示:

运行以下命令,则在关键字为1的表中插入三条记录:

    >>> q = Question.objects.get(pk=1)
    >>> q.choice_set.create(choice_text="Not much", votes=0)
    <Choice: Not much>
    >>> q.choice_set.create(choice_text="The sky", votes=0)
    <Choice: The sky>
    >>> c = q.choice_set.create(choice_text="Just hacking again", votes=0)

修改polls/models.py文件,以便在数据库表的查询中能返回更明确的信息。

class Question(models.Model):
        # ...
        def __str__(self):
            return self.question_text


    class Choice(models.Model):
        # ...
        def __str__(self):
            return self.choice_text

并增加另一个自定义的方法:

import datetime

from django.db import models
from django.utils import timezone


    class Question(models.Model):
        # ...
        def was_published_recently(self):
            return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

注意上面又导入了和时区有关模块和工具类。

5、建立管理员账号

通过以下命令来创建一个管理站点。

python manage.py createsuperuser

在下图中,需要输入管理员用户名、密码、邮箱等信息。

现在打开网页,输入地址,就可以打开管理员页面了。

http://127.0.0.1:8000/admin/

输入用户名和密码,进入管理员页面。

这时我们发现有用户名和组的信息,修改 polls/admin.py 将投票系统加入,以便管理投票系统。

from django.contrib import admin
from .models import Question

admin.site.register(Question)

刷新管理页面,则新出现投票相关的内容。

点击最下的问题链接,我们就可以对投票系统,进行问题的添加、修改和删除等操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/171980.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

electron项目开机自启动

一、效果展示&#xff1a;界面控制是否需要开机自启动 二、代码实现&#xff1a; 1、在渲染进程login.html中&#xff0c;画好界面&#xff0c;默认勾选&#xff1b; <div class"intro">开机自启动 <input type"checkbox" id"checkbox&quo…

01【SpringBoot快速入门、yml语法、自动配置、整合框架】

目录 一、SpringBoot简介 1.1 Spring优缺点 1.1.1 Spring的优点 1.1.2 Spring的缺点 1.2 SpringBoot的概述 1.2.1 SpringBoot概述 1.2.2 SpringBoot的核心功能 二、SpringBoot快速入门 2.1 创建Maven工程 2.2 添加起步依赖 2.3 编写Controller 2.4 编写SpringBoot引…

论文《A recurrent latent variable model for sequential data》笔记:详解VRNN

A recurrent latent variable model for sequential data 背景 1 通过循环神经网络的序列建模 循环神经网络&#xff08;RNN&#xff09;可以接收一个可变长度的序列 x ( x 1 , x 2 , . . . , x T ) x (x_1, x_2, ..., x_T) x(x1​,x2​,...,xT​)作为输入&#xff0c;并通…

JavaWeb开发——文件上传

1 简介 文件上传&#xff1a;将本地图片、视频、音频等文件上传到服务器&#xff0c;供其他用户浏览或下载的过程 文件上传涉及到两部分&#xff1a;前端程序 服务端程序 前端程序 【三要素】&#xff1a;① 需要定义一个form 表单&#xff0c;且表单里需定义一个类型为“ …

Qt专栏3—Qt项目创建Hello World

setp1 打开软件 双击Qt Creator 11.0.3 (Community)&#xff0c;打进入软件界面 step2 创建项目 点击创建项目 step3 选择模板 选着Application&#xff08;Qt&#xff09;->Qt Widgets Application setp4 设置项目 名称中填入项目号名&#xff0c;创建路径中填入项目保存位…

基于C#实现KMP算法

一、BF 算法 如果让你写字符串的模式匹配&#xff0c;你可能会很快的写出朴素的 bf 算法&#xff0c;至少问题是解决了&#xff0c;我想大家很清楚的知道它的时间复杂度为 O&#xff08;MN&#xff09;&#xff0c;原因很简单&#xff0c;主串和模式串失配的时候&#xff0c;我…

django restful framework序列化与反序列化

在前后端分离开发中&#xff0c;对于RESTfulAPI设置&#xff0c;一般需要将查询/更新数据以JSON方式进行返回。 序列化 Model.py from django.db import models class User(models.Model):username models.CharField(verbose_name用户名,max_length10)age models.IntegerF…

服务器数据恢复—raid5上层NTFS分区误删除/格式化的数据恢复案例

NTFS是windows操作系统服务器应用最为广泛的文件系统之一。理论上&#xff0c;NTFS文件系统格式化操作虽然不会对数据造成太大的影响&#xff0c;但是有可能会出现部分文件目录结构丢失的情况。下面介绍一台服务器误操作导致raid5阵列上层的NTFS分区被格式化后如何逆向操作恢复…

Altium Designer学习笔记4

学会添加库。 元器件添加成功。 放置TYPE-C元器件。 绘制网络标识和电源端口&#xff0c;并且添加文字备注。 修改元器件的属性。

Hive安装配置 - 本地模式

文章目录 一、Hive运行模式二、安装配置本地模式Hive&#xff08;一&#xff09;安装配置MySQL1、删除系统自带的MariaDB2、上传MySQL组件到虚拟机3、在主节点上安装MySQL组件4、在主节点上配置MySQL&#xff08;1&#xff09;查看MySQL服务状态&#xff08;2&#xff09;查看M…

Softing mobiLink助力过程自动化——兼容HART、FF、PA的多协议接口工具

由于全球人口增加和气候变化等因素&#xff0c;“水”比以往任何时候都更具有价值。与此同时&#xff0c;环境法规和水处理标准也变得愈加严格。在这一大环境下&#xff0c;自来水公司不得不应对一些新的挑战&#xff0c;例如&#xff0c;更好地提高能源效率、最大程度地减少资…

【完全攻略】Gradio:建立机器学习网页APP

目录 前言一、Gradio介绍以及安装1-1、Gradio介绍1-2、安装 二、快速开始&#xff08;初步了解&#xff09;2-1、简单小栗子2-2、多输入多输出2-3、简易聊天机器人 三、关键技术3-1、带有样例的输入3-2、提示弹窗3-3、描述内容3-4、风格3-5、流式输出3-6、进度条3-7、分享APP 总…

个人如何进行深度复盘?这6大高效的复盘模型,让你的年终总结如虎添翼!

一年之计在于春&#xff0c;一日之计在于晨&#xff0c;而一年的收获与成长&#xff0c;在于这个年终的深度复盘。自我复盘&#xff0c;是对过去一年生活、工作、学习的反思和总结&#xff0c;能帮助我们提炼经验&#xff0c;发现不足&#xff0c;规划未来&#xff0c;以便更好…

利用AlphaMissense准确预测蛋白质组范围内的错义变体效应

Editor’s summary 蛋白质中单个氨基酸的变化有时影响不大&#xff0c;但通常会导致蛋白质折叠、活性或稳定性方面的问题。只有一小部分变体进行了实验研究&#xff0c;但有大量的生物序列数据适合用作机器学习方法的训练数据。程等人开发了AlphaMissense&#xff0c;这是一种…

动捕设备如何推动线下活动以虚拟主持人创新升级互动形式

随着元宇宙概念兴起&#xff0c;虚拟主持人结合全身动捕设备可以依托大屏、全息等形式直观呈现于线下活动&#xff0c;通过动捕设备实时驱动虚拟主持人&#xff0c;将现实活动场景与虚拟相连接&#xff0c;让活动以科技感、多元化的形式呈现&#xff0c;给活动参与者一种新的视…

redis之高可用

&#xff08;一&#xff09;redis之高可用 1、在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比&#xff08;365天&#xff09;99.9% 2、redis的高可用的含义更加广泛&#xff0c;正常服务是指标之一&#xff0c;数据容量的扩展、数据的安全性 3、在r…

基于C#实现协同推荐 SlopeOne 算法

一、概念 相信大家对如下的 Category 都很熟悉&#xff0c;很多网站都有类似如下的功能&#xff0c;“商品推荐”,"猜你喜欢“&#xff0c;在实体店中我们有导购来为我们服务&#xff0c;在网络上我们需要同样的一种替代物&#xff0c;如果简简单单的在数据库里面去捞&am…

【ISP】噪声--sensor(2)

1.热噪声 也叫KT/C噪声&#xff0c;或者叫暗电流噪声。电子的热运动的导致&#xff0c;温度上升&#xff0c;噪声增大。 2.FPN固定模式噪声 由于每个像素点的元器件制造的会有偏差&#xff0c;也就是这些器件的工作参数相对理论值的漂移就构成一种固定模式噪声。 3.光子散粒噪…

No appropriate protocol -- Mysql

DataGrip连接mysql报以下异常信息&#xff1a; javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5wi…

网站为什么一定要安装SSL证书

随着互联网的普及和发展&#xff0c;网络安全问题日益凸显。在这个信息爆炸的时代&#xff0c;保护用户隐私和数据安全已经成为各大网站和企业的首要任务。而SSL证书作为一种网络安全技术&#xff0c;已经成为网站必备的安全工具。那么&#xff0c;为什么网站一定要安装SSL证书…