WordPress-基础设置的固定链接设置

对第一涂鸦用Wordpress系统的情人,请先别着急发布篇与开展其它操作,为了进一步不易的行使和管制wordpress,应该用对那进展相关安装,主要干3独片,一、常规设置,二、阅读设置,三、固定链接设置。这3只有设置后,再用吧无晚,本篇教程为浩如烟海教程的老三有,即一定链接设置。

目录

style=”font-family: 宋体; font-size: 14pt;”>前言

style=”font-family: 宋体;”>第1 style=”font-family: 宋体;”>章
安装

style=”font-family: 宋体;”>第2 style=”font-family: 宋体;”>章
程序的着力构造

style=”font-family: 宋体;”>第3 style=”font-family: 宋体;”>章
模板

style=”font-family: 宋体;”>第4 style=”font-family: 宋体;”>章 style=”font-family: Calibri;”>Web style=”font-family: 宋体;”>表单

style=”font-family: 宋体;”>第5 style=”font-family: 宋体;”>章
数据库

style=”font-family: 宋体;”>第6 style=”font-family: 宋体;”>章
电子邮件

style=”font-family: 宋体;”>第7 style=”font-family: 宋体;”>章
大型程序的构造

哎是定位链接,打个如,如果说域名是一个博客当互联网及之代表一个人口的讲话,那么一定链接地址便是地方(xx路xx号)。只有经过稳定链接,你才能够找到找个人。由此可见,固定链接以博客中的重大。对于wordpress 用户而言,掌握一下有些恒定连接的设置参数和技艺,则能够更便利SEO及受更多人察觉。

 

世代链接设置参数:
参数没什么好说的,很充分的东西,你直接复制过去即可,参考WordPress官方文档列表如下:

 

  1. %year%
    冲文章发表年度,比如2007;
  2. %monthnum%
    据悉文章发布月份,比如05;
  3. %day%
    依据文章发表当日,比如28;
  4. %hour%
    基于文章发布时数,比如15;
  5. %minute%
    冲文章发表分钟数,比如43;
  6. %second%
    根据文章发布秒数,比如33;
  7. %postname%
    基于文章的postname,其值为编写时指定的缩略名,不点名缩略名时是文章标题;
  8. %post_id%
    据悉文章post_id,比如423;
  9. %category%
    依据文章分类,子分类会处理成“分类/子分类”这种样式;
  10. %author%
    因文章作者谓。

用上述参数进行整合,即可取得wordpress的原则性链接形式。网上科普的几乎栽设置方式(注意起/必须):
/%year%/%monthnum%/%day%/%postname%/
/%year%/%monthnum%/%postname%/
/%year%/%monthnum%/%day%/%postname%.html
/%year%/%monthnum%/%postname%.html
/%category%/%postname%.html
/%post_id%.html

前言

学习Python也发生一个半月份时了,学到今日感觉到要开始入门级,如果未依靠网上Demo资源,几乎无克自己写来有关称心的事物。目前觉得好还是有些失败啊,学的尽慢了接触。主要感觉还是要好刚刚开头学时有点浮躁,一心求快,看资料时首都是全方位吞枣。

 

巧起购买了同按照《Python基础教程
第2本》,大约花费了10上拘留了,初步摸底了Python语法相关特性以及如何链接后台数据库。那时,看罢后而买了《Python
Web开发实践》和《Flask
Web开发——基于Python的Web应用开发实践》。然后,花了5龙时间管《Flask
Web开发——基于Python的Web应用开发实践》看了相同整个,之所以这样快,是坐观看了第八章节时,发现代码有点干不了解,而且于作者GitHub上克隆下来的代码运行还有Bug,所以选择了飞看罢了后几段,大概了解一下落实思路。然后,开始看《Python
Web开发实践》,发现及时按照开的渴求吓高啊,初家想看明白她,花的年月从没两三周到还行不定(PS:主要是中间说的强调经验,没有实施类),于是也选择了4龙时间开浏览了一致总体。到了这里,我起选择看网络教程,把廖雪峰先生的Python教程从基础部分同样节一节上机实践操作了一如既往全套(PS:最后的品类实战没操作),这个也大抵花了8上时间。后面又花了5龙时间在网上检索了几篇大质量关于以Flask+MySQL实现用户登陆注册功能的Demo。到者,感觉对于Python基础掌握的双重好了一点。发现学技术,尤其是新技巧,要扎扎实实,求稳。

 

于是,我选了重复又拘留一样不折不扣《Flask
Web开发——基于Python的Web应用开发执行》,并争取把写中每一个演示运行出来,如果发现Bug,就解决。在当时等同巡学习过程中,发现有关Flask的国语学习资源大规模没有英文高,而且有关技术上书本都是英文版翻译过来的。翻译过来的问题不怕,书就问世了两三年,有些模块库更新,导致书被代码实际就是非可知运作,还添加作者自己立即的轻错误没与新。

 

本文先上污染第1章节到第7回的攻实践记录(PS:第8-14章见《Flask
Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)),目前自己吗是再次学到了此。如果产生套过Flask的长辈路过,有啊好之学资源引进,不怪感激。

 

叨叨絮絮有点多,本文主要内容就是记载自己在学习《Flask
Web开发——基于Python的Web应用开发执行》时,上机运行相关示例遇到的坑和某些心得体会,希望对另外初学Flask的同学小帮助。

 

附:《Flask
Web开发——基于Python的Web应用开发实践》作者博客、作者网络教程版、笔者本书GitHub代码链接

本书封面

图片 1

 

 

 


定点链接设置技巧:

第1章 安装

准有的情节装书及情一律步一步来操作,很简单,基本不见面出现问题。

注:本章主要教会初家,如何设置虚拟环境。使用虚拟环境一段时间后,会发觉上Python,使用虚拟环境真的是非常强劲,可以避Python解释器中包的烂以及本的撞,而且还未需要依赖管理员权限。

 

 


一样、不要为日子出现在定点连接链接里面

第2节  程序的着力构造

1.书本15页上面第二段落代码:

 图片 2

 

达成图中所出示问题我专门查看了转有关load_user()方法的调用及其作用,官方文档写明如下:

卿需要提供一个
user_loader 回调。这个回调用于从会话中蕴藏的用户 ID
重新加载用户对象。它应有接受一个用户之 unicode
ID,并返相应的用户对象。 例如: 
@login_manager.user_loader 
def
load_user(userid): 
    return
User.get(userid) 
一旦 ID
无效,它应有回到 None ( 而休是废来非常 )。(在这种景象下,ID 会
被手动从会话中改换除了还处理会继续。) 

 

2.书本16页左上角示例错误更改(PS:此处问题应当是承保版本升级导致,不过作者关于该项目github上源码已更新):

 图片 3

 

这边错误,在继承章节中,出现仿佛flask.ext.**净修改也flask_**即可。

 

流动:通过第2回,让自家概括询问了Flask框架的骨干用方式。其中要在路由和视图函数的实现同怎样启动服务器,难点在要钩子概念的了解,我管当下段概念反复看了一些不折不扣,也不得不解讲解的契表面意思,关于什么用依旧是一头雾水。

 

 


当即基于两独面的考虑。一凡是如果数字出现在一定链接里面,等于提醒搜索引擎,这是十分旧的情了,没必要更攀一整整了。另外一个由是,假如你要是改文章的日期再次颁发以来,链接地址便更换了,也即是意味着你的反倒为链接,PR
等等都尚未了。

第3章 模板

遵照书本上所述,一步一步进行操作,即可获如下运行结果:

 图片 4

图片 5

图片 6

 

此地设小心一点就是,直接由GitHub上克隆出之代码,直接运行hello.py文件是废的。需要在hello.py文件最末尾添加如下两推行代码:

if __name__ == '__main__':
    app.run(port = 8000,debug = True)

 

上述代码意思是,打开Flask自带服务器,开启端口是8000,且处于调试模式。

 

横流:第3节内容从未困难,认真看一下书及说,很快即会为明白相关代码意图。本章重点介绍了Jinja2模板引擎的行使(PS:此处建议初家及网上看一下Jinja2的出文档,加深了解),以及Flask-Bootstrap和Flask-Moment模块的下方法,感觉有功能都是早已勾勒好的,只管调用即可,很方便。

 


亚、不要给分类的链接出现于稳住链接里面
马上一点是无数口且见面忽略的地方。让分类出现在固化链接里面来少数只毛病:一凡是一模一样首文章要选了差不多个分类的语,则会现出多只链接地址,这充分爱招因为重新内容一经吃摸引擎惩罚;二凡是生或会见招重大词堆砌而给搜引擎惩罚。

第4章 Web表单

1.书本34页示例4-2代码更新(PS:引入保险吗要是改成化from
flask_wtf import Form,后续章节一样):

 图片 7

 

Class
wtforms.validators.DataRequired(message=None)
此验证器将见面检测field是否输入了累价值,实际上是进展了if
field.data操作。并且,如数数据是一个字符串,那么就包含空格的字符串将会见叫看是False。
参数:message-当验证失败时回来的左信息数:message-当验证失败时回来的失实信息。

这里作者GitHub上曾履新。具体使用原理可以查阅Flask-WTF开发文档。

 

2.瞧学习本章内容实在运行效果图:

 图片 8

 

流动:本章内容重点教授了Flask-WTF的采取,此处强烈建议初家先看一下Flask-WTF的开文档,再来展开第四章节的求学,这样懂会愈来愈深厚一点,学的为会见再度快一些。

除此之外,还详细介绍了重定向同用户会话功能:主要是Post/重定向/Get模式,通过重定向实现了页面刷新仍可记住前要的数目,使得网页功能更是人性化和智能化。

最终,就是Flash信息功能的应用,通过这个功效结合Flask-BootStrap包,在网页上拓展有关提示操作简直是两全。

本章节于作者GitHub上下载的代码都是编了正之,不过书本是2014年出版,相关错误与代码更新部分需留意即可。

 

 


老三、链接不要过大
就无异接触时看看。很多wordpress 用户之一贯链接是年/月/日/分类名/文章名。这种过于深的原则性链接对寻找引擎是很不友善之。
季、不要给中文字符出现于稳住链接里面

第5章 数据库

1.书本47页示例5-1代码有有bug,按照书本后续讲解进行操作会报以下错误:

 图片 9

 

总结:

本报错提示,需要以app.config[‘SQLALCHEMY_COMMIT_ON_TEARDOWN’]

True该行代码下上加如下一行代码:app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS’]
= False

 图片 10

 

SQLALCHEMY_TRACK_MODIFICATIONS:如果设置成True(默认情况),Flask-SQLAlchemy
将会见追踪对象的改动以发送信号。这得格外的内存,
如果不必要之可忍受用它。如果你切莫形的调用它,在风行版本的运作环境下,会显得警告。

 

2.书本50页5.8.1开立表,图被形的操作符应该是以Mac或者Linux环境下进行的授命操作,如果是于Windows环境下,是齐不顶成效的,具体如下:

 图片 11

 

具体操作方法如下(WIndows版本):

 图片 12

这边如何使遵照书本上命令达到效果,可以参见第2段有关Flask-Scrip包的上课,设置manager变量,然后就可直接打开shell进行连锁操作。

 

3.书本50页5.8节数据库操作有示例运行结果

 图片 13

图片 14

 

 4.书籍55页示例5-5部分关于操作数据库有代码来问题

 图片 15

此之所以这样修改代码,是坐设计之数据库角色跟用户是同样对几近之涉,用户表中包含一个角色id外键。在针对用户表进行插队操作时,必须使肯定一个用户角色,否则无法插入。

附运行成功页面截图:

 图片 16

 

5.书本57页有关Flask-MIgrate相关配置命令如何对贯彻问题

倘纯粹安装书本代码来进展相关命令操作,会发觉输入python
hello.py db
init命令根本没出口任何提示信息,即非可知学有所成创建迁移仓库。如果打作者GitHub上克隆下来的代码,直接开展这命令操作,也是未曾其余音讯提示。此处需要以hello.py文件最后面,加上如下两实践代码(PS:作者最新修改代码,未定义manager变量,此处需要查阅第2节有关Flask-Script包讲解,自己定义好manager变量):

if __name__ == '__main__':

    manager.run()

 

更错过决定高输入相关命令,即可兑现相关操作,操作成结果如下(PS:此处推荐一首博客文章https://www.cnblogs.com/caicairui/p/7821586.html):

 图片 17

 

 

6.有关以MySQL数据库实现相关增删查改操作问题

假设认真看了第5节内容,转用MySQL数据库实现增删查改操作非常简单,仅仅不过待将定义数据库URL地址变更一下就算可以,其他一些代码都不待改。具体修改如下:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/test_flask'
#app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir,'data.sqlite')

 

上述代码意思,使用用户称及密码都为root的mysql数据库账号,进入都创造好的test_flask数据库,进行交互关表的始建与数额的增删查改操作。自处可以仔细看一下图书46页表5-1。

 

流淌:通过本章的读书,让自身为主了解了何等以Flask-SQLAlchemy系职能,以及贯彻对关联项目数据库SQLite、MySQL的增删查改操作,最后极要的即是学会了以Flask-Migrate落实数据库迁移。为了能比好之明白与控制第5回内容,建议初家认真看一下Flask-SQLAlchemy和Flask-Migrate的合法文档。

 

 


则现在的寻找引擎已能识别URL地址间的汉语字符,但不管从美观及,还是打wordpress
优化的角度来拘禁,都是挺差之,金三国认为最好的链接格式:/%postname%.html,同时也会连续为大家提供再多的wordpress教程。

第6章 电子邮件

1.书本60页发送邮件示例

  • 首先局部:WordPress-基础设置的常规设置
  • 仲片段:WordPress-基础设置的阅读设置

是因为书及行使googlemail邮箱,一般国内同学还无见面使用是邮箱。大部分都见面利用QQ邮箱吧。此处就需要拿装写成app.config[‘MAIL_SERVER’]

‘smtp.qq.com’,即把电子邮件服务器主机名高中级的googlemail换成qq就实行啊。

成功这些,如果光以好的QQ邮箱号以及QQ密码登陆发送邮件的讲话,会报以下错误:

smtplib.SMTPSenderRefused:
(503, ‘Error: need EHLO and AUTH first !’, u’****’…)

解决办法(PS:此处关于QQ邮箱和登陆密码我是一直写于代码里的,没有就此环境变量获取):
进去自己之QQ邮箱,完成如下设置操作:

 图片 18

图片 19

 

 

出殡邮件测试代码(PS:上面得到QQ邮箱测试登陆临时密码有点坑的凡,发送了短信后,可能30秒后浏览器上开的QQ邮箱界面直倒,不过当下没涉及,崩溃后呢还可以发送邮件):

 图片 20

 

出殡成功后的截图:

图片 21

 

 

 2.关于61页在次中融为一体发送电子邮件功能

小心此处设整合第5章节数据库功能,所以前提假设确定以运作成功之页面上会使得地管数量插入后台数据库。其次,要留意的凡在templates文件下而协调下手新建一个mail文件夹,并当这个文件夹里新建new_user.txt和new_user.html两单文件文件,这样才当真兑现邮件发送功能。(PS:new_user.txt、new_user.html文件中情节,请查看从作者GitHub上克隆下来的代码)

运转成功结果页面如下(PS:此处实现力量博得邮箱信息,我还是直接写在代码中的,未以环境变量获取):

 图片 22

图片 23

 

流淌:本章主要教学了Flask-Mail的用,功能采用不难,主要是关乎邮箱发送邮件时登陆需要相关服务器许可的配备问题不怎么累。不过,整体来说,本章的采取,也自一边来看了Python的魅力,简单的几乎执行代码即可兑现有比较复杂的效应。

 

 


第7章 特大型程序的布局

1.书本66页示例7-2代码有bug

这里设全本书本及代码,到了持续上机运行时会报以下错误:

E:\WorkPlace\Git_python\liu_demo\venv\lib\site-packages\flask_sqlalchemy\__init__.py:794:
FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant
overhead and will be disabled by default in the future.  Set it to True
or False to suppress this warning.

此处需要加上一行代码,如下图:

 图片 24

 

附Flask-SQLAlchemy配置键有关力量定义:

SQLALCHEMY_DATABASE_URI

用于连接数据的数据库。例如:

  • sqlite:////tmp/test.db
  • mysql://username:password@server/db

SQLALCHEMY_BINDS

一个映射绑定 (bind) 键到 SQLAlchemy 连接 URIs 的字典。 更多的信息请参阅 绑定多个数据库

SQLALCHEMY_ECHO

如果设置成 True,SQLAlchemy 将会记录所有 发到标准输出(stderr)的语句,这对调试很有帮助。

SQLALCHEMY_RECORD_QUERIES

可以用于显式地禁用或者启用查询记录。查询记录 在调试或者测试模式下自动启用。更多信息请参阅 get_debug_queries()

SQLALCHEMY_NATIVE_UNICODE

可以用于显式地禁用支持原生的 unicode。这是 某些数据库适配器必须的(像在 Ubuntu 某些版本上的 PostgreSQL),当使用不合适的指定无编码的数据库 默认值时。

SQLALCHEMY_POOL_SIZE

数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)。

SQLALCHEMY_POOL_TIMEOUT

指定数据库连接池的超时时间。默认是 10。

SQLALCHEMY_POOL_RECYCLE

自动回收连接的秒数。这对 MySQL 是必须的,默认 情况下 MySQL 会自动移除闲置 8 小时或者以上的连接。 需要注意地是如果使用 MySQL 的话, Flask-SQLAlchemy 会自动地设置这个值为 2 小时。

SQLALCHEMY_MAX_OVERFLOW

控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃。

SQLALCHEMY_TRACK_MODIFICATIONS

如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。

 

丰富面一行代码后,再次去CMD进行连锁命令操作,发现运行正常,结果如下:

 图片 25

2.书本74页创建数据库示例运行结果

 图片 26

图片 27

 

流淌:第7段内容初看深简单,不重大,但是要是未过细看明白每一个布置步骤及相关代表意义,会发觉上后章节,很麻烦读懂相关代码。本章最着重之一部分,得读懂7.2部署选中config.py实现配置的切切实实办法,以及程序是怎么样调用这些设置好的配置。最后,需要专注的哪怕是学会7.4启动脚本中manage.py代码具体内涵,因为写好之主次是否正常打开服务,一般都是经这段代码来落实,说白了此地原理还是要回第2章节有关Flask-Script模块的上课(PS:即有关以manage.run()间接开启系统服务)。

 

末,附加一卖本身要好读书前7回内容达到机代码,都是比照书本及一行代码一行手动敲进去的,出现错误又修改,本有代码和作者GitHub上流行版本代码有小例外。

现实代码链接