查看从PHP到Python的代码转换
我正在将我的网站从PHP切换到Django(Python 3.5)。我需要帮助将下面的视图统计函数转换为Python 数据库结构如下:查看从PHP到Python的代码转换,php,python,django,migrate,Php,Python,Django,Migrate,我正在将我的网站从PHP切换到Django(Python 3.5)。我需要帮助将下面的视图统计函数转换为Python 数据库结构如下: CREATE TABLE blog_website_view_stats ( reference bigserial NOT NULL, blog_website_reference bigint NOT NULL, language_iso text NOT NULL, year bigint NOT NULL, mon
CREATE TABLE blog_website_view_stats
(
reference bigserial NOT NULL,
blog_website_reference bigint NOT NULL,
language_iso text NOT NULL,
year bigint NOT NULL,
month bigint NOT NULL,
day_1 bigint,
day_2 bigint,
day_3 bigint,
...
total_month_views bigint NOT NULL,
)
这是PHP代码
/**
* Entry View Stats
*
* @param $blog_reference
*/
public function EntryViewStats(
$blog_reference
)
{
/**
* @var \Actsministries\Database\Entity\RonsHome\BlogWebsiteViewStats $result
*/
$result = $this->entityManager->getRepository('Actsministries\Database\Entity\RonsHome\BlogWebsiteViewStats')
->findOneBy(
[
'blogWebsiteReference' => $blog_reference,
'languageIso' => 'en-US',
'month' => date('n'),
'year' => date('Y')
]
);
if (!is_object($result)) {
$setday = 'setDay' . date('j');
$this->entityManager->beginTransaction();
// does not exist
$view_stats_update = (new EntityBlogWebsiteViewStats())->setBlogWebsiteReference($blog_reference)
->setLanguageIso('en-US')
->setMonth(date('n'))
->setYear(date('Y'))
->setTotalMonthViews('1')
->$setday(
'1'
);
$this->entityManager->persist($view_stats_update);
$this->entityManager->flush($view_stats_update);
$this->entityManager->commit();
} else {
$this->entityManager->beginTransaction();
$setday = 'setDay' . date('j');
$getday = 'getDay' . date('j');
$result->$setday($result->$getday() + 1);
$result->setTotalMonthViews($result->getTotalMonthViews() + 1);
$this->entityManager->persist($result);
$this->entityManager->flush($result);
$this->entityManager->commit();
}
}
到目前为止,我提出的python代码是:
@transaction.atomic()
def stats(self, context):
"""stats
:param dict context: Context
:return: None|bool
"""
result = BlogWebsiteViewStats.objects.update_or_create(
blog_website_reference=1,
language_iso='en-US',
year=timezone.now().year,
month=timezone.now().month,
('day_' + str(timezone.now().day))=datetime.utcnow() + timedelta(days=1),
total_month_views=1
)
result.save()
我正在努力: