[技术向]把Django迁移到WordPress

42次阅读

共计 3680 个字符,预计需要花费 10 分钟才能阅读完成。

Discuz 贴的代码没有高亮,排版也不太好看,感兴趣的可以前往我的博客看一下:https://sharpgan.com/wordpress-to-django/ 首先展示一下 Django 的表结构:class Category(models.Model):    category_name = models.CharField(max_length=200)    def __str__(self):        if self.category_name:            return self.category_name    class Meta:        verbose_name = " 分类 "        verbose_name_plural = verbose_nameclass Tag(models.Model):    tag_name = models.TextField(max_length=100)    def __str__(self):        if self.tag_name:            return self.tag_name    class Meta:        verbose_name = " 标签 "        verbose_name_plural = verbose_nameclass PostManager(models.Manager):    def distinct_date(self):  # 该管理器定义了一个 distinct_date 方法,目的是找出所有的不同日期         distinct_date_list = []  # 建立一个列表用来存放不同的日期 年 - 月         date_list = self.values(\’post_date\’)  # 根据文章字段 date_publish 找出所有文章的发布时间         for date in date_list:  # 对所有日期进行遍历,当然这里会有许多日期是重复的,目的就是找出多少种日期             date = date[\’post_date\’].strftime(\’%Y 年 %m 月 \’)  # 取出一个日期改格式为‘xxx 年 /xxx 月 存档’            if date not in distinct_date_list:                distinct_date_list.append(date)        return distinct_date_listclass Post(models.Model):    title = models.CharField(max_length=200)    slug = models.SlugField(max_length=255,unique=True)    author = models.ForeignKey(User, on_delete=models.CASCADE)    post_date = models.DateTimeField(auto_now_add=True)    comment_status = models.CharField(choices=COMMENT_STATUS_CHOICES,                                      default=(\’opened\’, \’opened\’), max_length=20)    content = RichTextUploadingField(config_name=\’default\’)    tag = models.ManyToManyField(\’Tag\’, blank=True)    category = models.ForeignKey(Category, related_name=\’category\’, null=True, on_delete=models.CASCADE)    objects = PostManager()    is_wordpress = models.CharField(choices=IS_WORDPRESS, default=(\’yes\’, \’yes\’), max_length=10)    price = models.FloatField(blank=True, null=True)    class Meta:        verbose_name = " 文章 "        verbose_name_plural = \’\\u200B\’ + verbose_name        ordering = ["-post_date"]    def __str__(self):        if self.title:            return self.title    def get_absolute_url(self):        return reverse(\’article_detail\’, args=[str(self.slug)])class Comments(MPTTModel):    post = models.ForeignKey(Post, on_delete=models.CASCADE)    user_name = models.CharField(max_length=20)    email = models.CharField(max_length=50)    comment_date = models.DateTimeField(auto_now=True)    content = models.TextField(max_length=1000)    parent = TreeForeignKey(\’self\’, on_delete=models.CASCADE, null=True, blank=True, related_name=\’children\’)    approved = models.CharField(choices=COMMENT_APPROVED_CHOICES,                                default=(\’refused\’, \’refused\’), max_length=20)    def __str__(self):        if self.content:            return self.content    class Meta:        verbose_name = " 评论 "        verbose_name_plural = verbose_name        ordering = ["-comment_date"]class Order(models.Model):    order_id = models.CharField(max_length=25)    order_done_datetime = models.DateTimeField(auto_now_add=True)    slug = models.CharField(max_length=200)     def __str__(self):        if self.order_id:            return self.order_id    class Meta:        verbose_name = " 订单 "        verbose_name_plural = verbose_name        ordering = ["-order_done_datetime"] 复制代码然后是 WordPress 迁移到 Django 的实战代码:[code]#!/usr/bin/env python3# coding=utf-8import pymysqlimport sqlite3from pymysql.connections import Connectionfrom pymysql.cursors import Cursorfrom pymysql.connections import Connection as MyConnectionclass MysqlConn():   def db_connector(self) -> Connection:       """       功能:用于数据库初始化连接,获取 db 实例对象        :return: db 连接对象        """       common_db_config = {\’host\’: \’192.168.0.1\’,                           \’user\’: \’root\’,                           \’port\’: 3306,                           \’passwd\’: \’123456root\’, sharp097 2023-01-02 22:36 2 卧槽,第一次发表被拦截了,第二次怎么被截断了,感兴趣的去我博客看一下吧 飞鱼 8 2023-01-02 22:44 3 大佬们 现在做站用什么程序?蛋饼 2023-01-02 22:44 4 广告屏蔽进不去 sharp097 2023-01-02 22:54 5 飞鱼 8 发表于 2023-1-2 22:44 大佬们 现在做站用什么程序?现在用的 WordPress 哈

正文完