- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开始我的第一个 Django Web 应用程序 [在完成 Django 官方教程和 Django Girls 教程之后].. 我在设置模型时遇到了一些麻烦。我现在有了一些可行的方法,但我觉得它效率很低,我宁愿在继续之前学习正确的方法..
开始 - 当学习一门新的编程语言时,很多人(在互联网上)建议选择一个你喜欢的主题/爱好,并用它来做一个项目。我非常喜欢体育运动,并且想重新创建一个虚拟记分牌,类似于 ESPN 或任何其他体育网站。
我的 models.py 目前看起来像这样 -
class Game(models.Model):
# start_time = models.DateTimeField()
today = models.DateField(default=date.today)
game_id = models.AutoField(primary_key=True)
game_outcome = models.CharField(max_length=8)
game_quarter = models.CharField(max_length=1)
game_clock = models.PositiveSmallIntegerField()
away_team_id = models.CharField(max_length=3)
away_team_class = models.CharField(max_length=3)
away_team_city = models.CharField(max_length=13)
away_team_name = models.CharField(max_length=12)
away_team_score = models.PositiveSmallIntegerField()
home_team_id = models.CharField(max_length=3)
home_team_class = models.CharField(max_length=3)
home_team_city = models.CharField(max_length=13)
home_team_name = models.CharField(max_length=12)
home_team_score = models.PositiveSmallIntegerField()
但我觉得这有太多变数,而且不是正确的处理方法。我也尝试过类似的事情......
class Day(models.Model):
today = models.DateField(default=date.today)
class Game(models.Model):
game_id = models.AutoField(primary_key=True)
game_outcome = models.CharField(max_length=8)
game_quarter = models.CharField(max_length=1)
game_clock = models.PositiveSmallIntegerField()
away_team_id = models.CharField(max_length=3)
away_team_score = models.PositiveSmallIntegerField()
home_team_id = models.CharField(max_length=3)
home_team_score = models.PositiveSmallIntegerField()
class Team(models.Model):
team_id = models.ForeignKey('Team')
team_class = models.CharField(max_length=3)
team_city = models.CharField(max_length=13)
team_name = models.CharField(max_length=12)
每天有 0 到 xx 场比赛。每场比赛都有:结果(空或“最终”)、当前季度(“1”或空)、当前时钟(“00:00”或空)、客队(“CHA”)、客场得分(“99”) )、主队('TOR') 和主场得分('102')。然后我会获取团队 ID 并将其与类(class)团队进行比较。每个球队都有一个类(class)(CSS:“tor”)、城市(“多伦多”)和全名(“猛龙队”)。
但它仍然没有留在我的脑海中。我可以在 python shell 中获取所有信息并将其输出到我的 html/css,但我觉得效率很低。此外,每一天都有自己的 html 页面(类似于 website.com/nba/scores/20150112/),并且充满了当天的所有比赛。
抱歉,如果这个问题太初学者,无法提出;我花了很多时间寻找答案,最后决定在 stackoverlow 上发帖(我的第一个问题)。
任何信息或建议将不胜感激。
最佳答案
首先,您需要了解使用的外键越多,给数据库带来的负载就越大。但它也很大程度上取决于views.py 代码。其次,如果您使用外键,则不需要使用 team_id
作为字段名称。只需提及类名,它就会自动为该字段创建一个 _id
。
看下面的代码:
class Game(models.Model):
start_time = models.DateTimeField()
today = models.DateField(default=date.today)
game_id = models.AutoField(primary_key=True) # You don't need this line, an id field is created for EVERY model class even if you don't specify it.
game_outcome = models.CharField(max_length=8)
game_quarter = models.CharField(max_length=1)
game_clock = models.PositiveSmallIntegerField()
away_team = models.ForeignKey('Team')
home_team = models.ForeignKey('Team')
class Team(models.Model):
team_class = models.CharField(max_length=3)
city = models.CharField(max_length=13)
name = models.CharField(max_length=12)
score = models.PositiveSmallIntegerField()
您可以看到我创建了另一个名为 Team
的类,并将四个字段放在原始 Game
类中重复的字段上。然后,我使用 ForeignKey
将 Team
类连接到 Game
类。如果您安装 SQLiteBrowser 并检查数据库文件,那么您将看到 away_team
字段实际上是数据库中的 away_team_id
字段,因为 Django 会处理这一点。您不需要创建 id
字段,只需使用 ForeignKey
、ManyToManyField
等关系。这就是我的想法我唯一能建议的就是。
从这个项目的范围来看,您不会因为太多关系而给数据库带来太大的压力,所以现在不用担心。就是这样。如果您有任何更具体的问题,可以询问。干杯! :)
附注我不确定您的项目详细信息,因此请使用您认为合适的关系,无论是一对一、多对一还是多对多等。请阅读文档以获取更多详细信息。 :)
关于python - (初学者)第一个 Django Web 应用程序 - models.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756843/
我使用的是 Windows 8.1 和 Python 2.7,我在特定文件路径中设置了所有文件(希望正确),但每当我运行 python manage.py runserver 时,我都会收到此错误。
背景: 我有一个像这样的目录结构: Package/ setup.py src/ __init__.py __main__.py cod
我从这个线程运行了一个示例代码。 How to properly use coverage.py in Python? 但是,当我执行此命令时 py.test test.py --cov=sample
IPython 0.13.1 文档说: $ ipython -h ... Usage ipython [subcommand] [options] [files] If invoked
我写了一个网站,让我困惑的是当我运行这个网站时,首先我需要启动应用程序,所以有 3 种方法: sudo python xxx.py python xxx.py xxx.py 每一个我都不清楚怎么用,目
我不确定为什么它不起作用,这可能是一个您无法解决的问题,但我只是想知道为什么它不起作用。如果我浪费了您的时间,或者没有正确地提出问题,我很抱歉,我 16 岁,对 Python 还算陌生。 在main.
鉴于以下情况:models.py from .managers import PersonManager from django.db import models class Person(model
有没有办法将参数传递给 web.py 处理程序类构造函数? 例如。这些参数可能来自命令行(当主 web.py 脚本运行时),在第一个参数(作为端口号)之后 最佳答案 当然,这取决于你的意思。毕竟都是p
我对 python/django 编程很陌生,因为我没有编程背景。我正在在线上课,我只想确切地知道 manage.py 文件的作用。我试过用谷歌搜索它,但除了在 django-admin.py 周围放
我想将类别及其子类别保存到数据库中,这里每个类别都有多个子类别。您能帮我保存与类别相对应的用户、类别和多个子类别吗?Models.py、Serializers.py、Views .py 并附加传入请求
所以我的机器人开始有很多命令,并且在 main.py 上变得有点困惑。我知道有一种方法可以将命令存储在其他文件中,然后在 discord.js 上触发它们时将它们应用于 main.py。在 disco
我正在尝试制作一个类似于 mee6 的 Discord 机器人,因为它会按特定时间间隔计算用户在我的 Discord 服务器中发送的消息。我已经在网上搜索过,但即使有类似的问题也找不到我要找的东西。例
我正在尝试制作一个机器人,它根据特定 channel 中的消息创建线程。如果有在 discord.py 中的文本 channel 中创建线程的方法,请告诉我。 最佳答案 是的,但有一个问题。 当前版本
我一直在尝试制作一个命令来显示一些信息,然后当我对表情使用react时,它应该会显示另一组信息。 我尝试使用 this 的部分内容,特别是第 335 到 393 行的部分让它工作。但是,它什么也不做。
这是我试过的代码: @client.event async def on_message(message): if client.user.mention in message.content
我试过这段代码,机器人说猜但没有回应我的猜测。 @commands.command() async def game(self, ctx): number = random.randint(0
我决定尝试让我的不和谐机器人播放音乐,但我已经卡住了。主要是因为我找不到任何资源来帮助当前版本,我一直在从文档中获取所有内容。但是,我不知道如何检查机器人是否已连接到语音 channel 。 我试过
我在一个目录中有三个文件: # Untitled-1.py print("UTITLEDPY") if __name__== "__main__": from telegram.ext imp
我对 python 相当陌生,并且一直只使用 Jupyter Notebooks。当我需要运行我已保存在计算机中某处的 .py 文件时,我通常所做的就是使用魔术命令 %run %run '/home/
我有 Django 1.4 和 Python 2.6.6当我使用“django-amdin.py startproject djproject”时,请按照网页中的步骤操作 https://www.ib
我是一名优秀的程序员,十分优秀!