Python 带有所需临时模型数据的Django部署

Python 带有所需临时模型数据的Django部署,python,django,database,deployment,Python,Django,Database,Deployment,首先,我对部署非常陌生。 我已经在我的windows机器中使用Django构建了一个新的报纸项目。 它在localhost中运行良好。 现在我想在pythonanywhere中部署它 我使用默认的db.sqlite3作为我的数据库。 但在生产中,我将使用MySql(MySql有简单的设置和支持) 问题: 作为一份报纸,我的网站需要很多专门的过滤。找到一个值 有时,我不得不对过滤后的数据使用列表索引,例如-(在获取上下文数据的内部): 正如您所看到的,如果“filter”没有找到任何内容,它将引发

首先,我对部署非常陌生。 我已经在我的windows机器中使用Django构建了一个新的报纸项目。 它在localhost中运行良好。 现在我想在pythonanywhere中部署它

我使用默认的db.sqlite3作为我的数据库。 但在生产中,我将使用MySql(MySql有简单的设置和支持)

问题: 作为一份报纸,我的网站需要很多专门的过滤。找到一个值 有时,我不得不对过滤后的数据使用列表索引,例如-(在获取上下文数据的内部):

正如您所看到的,如果“filter”没有找到任何内容,它将引发一个错误,如下所示:- 列表索引超出范围。总的来说,我的代码将在没有任何临时模型数据的情况下中断(目前,尽管其中大多数是lorem ipsum)。在代码完成之前,我已经填充了它们。现在,我如何部署我的项目,因为我可能因为这些错误而没有机会再次在线填充它们。而且我的调试将是错误的,几乎不可能运行我的代码而不发现错误

我有两个(一半!)想法-

1.在部署时,然后在配置之后,以某种方式上载sqlite3数据库 MySQL,动态地将数据从sqlite3传输到MySQL(我也不知道怎么做)

2.只需注释掉“model”中的所有视图、URL和绝对URL,除了 创建视图,然后部署它。在通过该视图填充数据库之后,我将删除Github中的commit并从中更新代码(我觉得这几乎是虚构的)

对于这种情况有什么约定吗?我的方法应该是什么?
任何帮助都将不胜感激。

为了不从django ORM筛选器中获取错误,您可以使用
exists
选项,如下所示:

news_present = SingleNews.objects.filter(published_date__lte=timezone.now(), news_extras__icontains='main_lead_news').exists()

if news_present:
      context['main_lead_news']=SingleNews.objects.filter(
                                                published_date__lte=timezone.now(),
                                                news_extras__icontains='main_lead_news').order_by('-published_date')[0]
news_count = SingleNews.objects.filter(published_date__lte=timezone.now(), news_extras__icontains='main_lead_news').count()

if news_count > 0:
      context['main_lead_news']=SingleNews.objects.filter(
                                                published_date__lte=timezone.now(),
                                                news_extras__icontains='main_lead_news').order_by('-published_date')[0]
或者像这样使用
count
选项:

news_present = SingleNews.objects.filter(published_date__lte=timezone.now(), news_extras__icontains='main_lead_news').exists()

if news_present:
      context['main_lead_news']=SingleNews.objects.filter(
                                                published_date__lte=timezone.now(),
                                                news_extras__icontains='main_lead_news').order_by('-published_date')[0]
news_count = SingleNews.objects.filter(published_date__lte=timezone.now(), news_extras__icontains='main_lead_news').count()

if news_count > 0:
      context['main_lead_news']=SingleNews.objects.filter(
                                                published_date__lte=timezone.now(),
                                                news_extras__icontains='main_lead_news').order_by('-published_date')[0]

exists
不会获取所有条目,但只检查筛选查询中是否存在任何值。因此,它返回
True
False
。阅读更多内容:

非常感谢。那有帮助!