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)

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

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

相关推荐
bst@微胖子40 分钟前
Python高级语法之selenium
开发语言·python·selenium
wyk123_04642 分钟前
Django 连接(sqlserver)数据库方法
数据库·sqlserver·django
查理零世2 小时前
【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
python·算法·蓝桥杯
魔尔助理顾问3 小时前
一个简洁高效的Flask用户管理示例
后端·python·flask
java1234_小锋3 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
诚信爱国敬业友善6 小时前
常见排序方法的总结归类
开发语言·python·算法
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
小哥山水之间8 小时前
在 Python 中操作 Excel 文件
开发语言·python·excel
wang_yb10 小时前
『Python底层原理』--CPython的变量实现机制
python·databook
databook10 小时前
『Python底层原理』--CPython的变量实现机制
后端·python