Python还是php建站?说实话,PHP可以看得懂,但是写的话,需要熟悉语法。建立一个python网站需要从头开始。包括templates,cms,php下的wordpress都没有那么多。WordPress在插件方面也有绝对优势。一直在写python后台,前端页面留了一两年。一根头发也没有了。经过深思熟虑,我还是决定用wordpress搭建自己的小博客玩玩。随便下载了一个wordpress,在本地设置好后,分析wordpress数据库表之间的关系。整理了几个主要的表格,下面简单记录一下。(非专业php,仅从后台角度简单分析,如有高手路过,勿喷)。目标网站我喜欢在网上收集一些书籍,也喜欢看书。以三人行书店为例:三人行书店截图如下。这个网站是用一个插件分析的,使用的是GIt主题。页面主要分析点截图用红框标出——文章目录、文章、文章标签。涉及的表有:wp_terms、wp_posts、wp_term_taxonomy、wp_term_ralationships。这些表的作用是:wp_posts:文章存储表。主要字段:ID-自增ID。post_title-帖子的标题。post_excerpt-文章介绍wp_terms:标签和目录的存储表。term_id-自增id。name-标签或目录的名称。slug-urlencode之后的内容。wp_term_taxonmy:目录和标签的描述信息,主要字段:term_taxonomy_id-表的自增id,term_id-对应上面wp_terms的term_id,taxonomy-类别或标签(category或post_tag),count:counter,对应屏幕截图中的标签下面的数字。wp_term_relationships:wp_terms和wp_posts的关系表。也就是说,这个表决定了一篇文章是什么类别,有什么标签。主要字段:object_id-对应于wp_posts中的ID。term_taxonomy_id对应于wp_term_taxonomy中的term_taxonomy_id。object_id,term_taxonomy_id是多对多的关系。文章分析是在wordpress中实际编辑文章和目录标签,然后观察各个表的变化。分析比较简单粗暴。但是基本上可以作为二次开发的基础。我是如何进行二次开发的?据说是二次开发。事实上,没有具体的目标。我没有打算建立一个网站。关于当前的预热活动,熟悉并验证结论是否正确。我还是用我最熟悉的python作为开发语言。找到目标网站并爬取一些内容——包括标题、类别分类和标签。我不会透露使用哪个网站作为材料。大多数网站都有我们需要的元素。使用python简单的写一个scrapy爬虫(直接用requests直接爬),我们需要的资料都存储在单独的字段中。在脚本批处理一文中,我推荐最好使用sqlalchemy对源数据表和wp数据表进行建模。然后根据wp的各个表之间的关系做事务插入。也就是用一个session将完整的数据插入到上述的表中。这里推荐一个快速生成数据模型的工具,配合sqlalchemy使用可以事半功倍。sqlacodegen的具体操作方法:1.pipinstallsqlacodegen2.sqlacodegen--outfile=models.pymysql://root:guess@192.168.1.250:3306/test第二个操作是对整个库进行建模,当然是也可以选择对表格进行建模。sqlacodegen--outfile=models.pymysql://root:guess@192.168.1.250:3306/test--tablesteacher,student我的具体处理逻辑,部分伪代码如下(写的太乱了,只能去掉一部分伪代码很丑)post=spider_session.query(SpiderData).filter(SpiderData.id==1)#从爬虫数据库中选择一个...#Wordpress数据库插入wp_post=WpPost()wp_post.post_title=post.article_namewp_post.post_content=post.contentwp_post.post_excerpt=post.short_introductionwp_post.post_status="publish"session_wp.add(wp_post)session_wp.commit()#下面是wp_terms表,术语table可以预先插入tags和categories,这里只查询terms=spider_session.query(SpiderData).filter(SpiderData.id==1).all()#Insertwp_termsforterminterms:#找到对应的idwp_terms中的这个标签。前提是你已经插入了。term_id=session_wp.query(WpTerm).filter(WpTerm.name==term.name).first()#处理wp_term_relationshipsobject_id=wp_post.IDwp_relationship=WpTermRelationships()wp_relationship.object_id=object_idwmid_idp_relationships=object_idwp_idp_relationships.ter.add(wp_relationship)session_wp.commit()以上代码仅提供思路,实际应用中注意异常处理。自从我写这篇文章时完成我的小演示站点已经有一段时间了。Direction是一种技术博客类型。还记得刚接触wordpress时那张茫然的脸。当你静下心来学习一段时间后,你会发现,很多事情在你全力以赴之后,都会变得非常简单。多于。
