Django(二)-搭建第一个应用(1)

一、项目环境和结构

1、项目环境

2、项目结构

二、编写项目

1、创建模型

++代码示例:++

python 复制代码
import datetime

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


# Create your models here.

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    # 如果不自定义字段名,默认就是变量名:比如此例的pub_date
    pub_date = models.DateTimeField("data published")

    def __str__(self):
        return self.question_text

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)


class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

2、激活模型

3、生成迁移文件

主要用于生成模型对应的数据库表结构,注意此时还没有执行迁移,该文件只是描述应该执行哪些sql操作。

++将会看到如下输出:++

++并且在migrations文件夹中生成如下文件:sql操作命令++

++通过以下语句可查 看迁移命令会执行哪些 SQL 语句:++

python 复制代码
$ python manage.py sqlmigrate polls 0001

​编辑4、执行迁移

migrate 命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上。

bash 复制代码
$ python manage.py migrate

5、创建管理员账号

bash 复制代码
$ python manage.py createsuperuser
Username: admin
Email address: maplea2012@gmail.com
Password: **********
Password (again): *********
Superuser created successfully.

6、访问管理员后台

7、向管理员页面中加入投票应用

++添加完成之后的页面:++

点击Questions:

++点击 "What's up?" 可编辑这个问题(Question)对象++:

相关推荐
pele几秒前
mysql如何使用INNER JOIN内连接_mysql等值连接实现方式
jvm·数据库·python
人道领域1 分钟前
深度揭秘:JDK 21 虚拟线程原理与性能调优实战
java·开发语言·python·jdk
maqr_1102 分钟前
uni-app怎么解决H5端跨域请求 uni-app生产环境代理配置【解决】
jvm·数据库·python
研究点啥好呢4 分钟前
Github热榜项目推荐 | Fireworks Tech Graph:告别手动绘图时代
python·开源·github·claude·skills
ycjunhua6 分钟前
终极入门:uv —— 超快 Python 包 / 环境管理工具(Windows 完整版)
windows·python·uv
2401_883600256 分钟前
SQL视图名称冲突如何避免_建立规范化的命名空间与管理
jvm·数据库·python
JAVA学习通7 分钟前
AI Agent 工具调用机制深度解析与 Spring Boot 工程集成实战(2026版)
java·人工智能·spring boot·python·spring
亿牛云爬虫专家8 分钟前
解决 Python 爬虫代理 407 错误:基于 urllib3 更新与爬虫代理的实战指南-2
爬虫·python·爬虫代理·authentication·urllib3·407·base64 编码
m0_640309309 分钟前
CSS中如何让浮动元素撑开父容器_深度解析清除浮动
jvm·数据库·python
2301_816660219 分钟前
Golang bufio怎么读取用户输入_Golang标准输入读取教程【详解】
jvm·数据库·python