<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[boteman123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/boteman123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; boteman123]]></copyright><item><title><![CDATA[dajngo中的事物操作]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/84139594</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/84139594</guid><author>boteman123</author><pubDate>Fri, 16 Nov 2018 15:18:28 +0800</pubDate><description><![CDATA[事物：

原子性：一个事务（transaction）中的所有操作，要么全部完成，要么全部不完成，不会结束在中间某个环节。事务在执行过程中发生错误，会被回滚（Rollback）到事务开始前的状态，就像这个事务从来没有执行过一样。

一致性：在事务开始之前和事务结束以后，数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则，这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的...]]></description><category></category></item><item><title><![CDATA[flask中的蓝图 blueprint]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83547381</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83547381</guid><author>boteman123</author><pubDate>Wed, 31 Oct 2018 19:18:50 +0800</pubDate><description><![CDATA[1.初识Flask蓝图(blueprint)

1，编写蓝图模块



2：在app中注册蓝图



二：定义蓝图的模板template



三：蓝图总结：

Blueprint 其实可以理解为一个了没有run方法的 Flask 对象

只要Blueprint被 Flask 注册了,就一定会生效

蓝图内部的视图函数及route不要出现重复

 ...]]></description><category></category></item><item><title><![CDATA[flask中的before_request after_request]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83547815</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83547815</guid><author>boteman123</author><pubDate>Wed, 31 Oct 2018 19:18:41 +0800</pubDate><description><![CDATA[一：@app.before_request 在请求(request)之前做出响应


@app.before_request     #在请求(request)之前做出响应
def is_login():
    if request.path == &quot;/login&quot;:

#request.path 是来读取当前的url地址如果是 /login 就允许直接通过 return None 你可以理解成...]]></description><category></category></item><item><title><![CDATA[实例化Flask的参数及对app的配置]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83546087</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83546087</guid><author>boteman123</author><pubDate>Wed, 31 Oct 2018 19:18:34 +0800</pubDate><description><![CDATA[app = Flask(__name__)  # type:Flask 这里的type是指定app是Flask实例，可以很好的提示
app.config[&quot;DEBUG&quot;] = True  #代码只要发生改动,自动重启Flask程序(app.run) 但是用pycharm自动生成的项目不会重启
Flask的配置就是在 app.config 中添加一个键值对,但是你存进去的键必须是config中应该存...]]></description><category></category></item><item><title><![CDATA[jianja2中执行python函数]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83513193</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83513193</guid><author>boteman123</author><pubDate>Tue, 30 Oct 2018 17:47:32 +0800</pubDate><description><![CDATA[1，自定义普通函数

前端自定义函数：



后端使用：



 

2：自定义全局函数，无需传递给前端，jinjia2直接就可以执行的函数

方式一：要用template_filter()装饰



方式二：用template_global（）装饰



两种方式，在后端使用稍有不同

...]]></description><category></category></item><item><title><![CDATA[jinja2模板的复用]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83513316</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83513316</guid><author>boteman123</author><pubDate>Tue, 30 Oct 2018 17:47:24 +0800</pubDate><description><![CDATA[类似于django中模板的继承与导入

一：jinja2中使用extends

1：首先自定义一个home.html文件

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt]]></description><category></category></item><item><title><![CDATA[flask中的Session]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83514072</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83514072</guid><author>boteman123</author><pubDate>Tue, 30 Oct 2018 17:47:14 +0800</pubDate><description><![CDATA[1. Flask 中 session 是需要 secret_key 的


from flask import session
app = Flask(__name__)
app.secret_key = &quot;PW&quot;  #必须设置serect_key

secret_key 实际上是用来加密字符串的,如果在实例化的app中没有 secret_key 那么开启session一定会抛异常的

2. se...]]></description><category></category></item><item><title><![CDATA[flask的路由配置]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83514379</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83514379</guid><author>boteman123</author><pubDate>Tue, 30 Oct 2018 17:46:59 +0800</pubDate><description><![CDATA[一： @app.route() 装饰器中的参数

         #1： methods : 当前 url 地址,允许访问的请求方式

         @app.route(&quot;/info&quot;, methods=[&quot;GET&quot;, &quot;POST&quot;])

         #:2：endpoint : 反向url地址,默认为视图函数名 (url_for)

          from flask imp...]]></description><category></category></item><item><title><![CDATA[flask的模板]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83512938</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83512938</guid><author>boteman123</author><pubDate>Mon, 29 Oct 2018 20:59:22 +0800</pubDate><description><![CDATA[Flask中默认的模板语言是Jinja2

I. Jinja2模板语言中的 for


{% for foo in g %}

{% endfor %}

II. Jinja2模板语言中的 if


{% if g %}

{% elif g %}
    
{% else %}
    
{% endif %}

后端的的传递方式，render_template可以传递多个关键字



前端的取...]]></description><category></category></item><item><title><![CDATA[flask基础]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83511467</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83511467</guid><author>boteman123</author><pubDate>Mon, 29 Oct 2018 20:45:47 +0800</pubDate><description><![CDATA[第一个flask程序：



flask中支持的数据返回格式：

1：Flask的HttpResponse

             直接return “hello world” 返回的就是HttpResponse对象

2：Flask的Redirect

             重定向，类似于django中的redirect

3：Flask中的 render_template

     ...]]></description><category></category></item><item><title><![CDATA[django缓存设置]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83350651</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83350651</guid><author>boteman123</author><pubDate>Wed, 24 Oct 2018 21:20:55 +0800</pubDate><description><![CDATA[1：中间件全局配置



2：装饰器局部视图函数配置

给需要的视图函数加上装饰器就可以。装饰其中传入的就是缓存时间，秒为单位。



3：在视图模板中，对某一部分使用缓存



 

 

4：在setting文件中配置缓存的引擎，和保存路径：（缓存的引擎有很多种，可以保存到redis，内存等）

一：制定文件引擎



二：制定redis引擎：

...]]></description><category></category></item><item><title><![CDATA[django中contenttype的使用]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83350098</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83350098</guid><author>boteman123</author><pubDate>Wed, 24 Oct 2018 20:30:01 +0800</pubDate><description><![CDATA[contenttype主要用于解决：表的id和数据id，来唯一确定一条数据，即（通过表名加上表中的唯一字段id可以确定唯一的一条数据）。

实例： 定义model



view视图中使用：

主要是：数据的增删改查：

查询数据：



 ...]]></description><category></category></item><item><title><![CDATA[getattr,setattr,hasattr详解]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/83063313</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/83063313</guid><author>boteman123</author><pubDate>Mon, 15 Oct 2018 19:26:24 +0800</pubDate><description><![CDATA[1，hasattr(object, name)

        判断一个对象里面是否有name属性或者name方法，返回BOOL值，有name特性返回True， 否则返回False。
需要注意的是name要用括号括起来

实例：



2，getattr(object, name[,default])

            获取对象object的属性或者方法，如果存在打印出来，如果不存在，打...]]></description><category></category></item><item><title><![CDATA[Django的中间件]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/82747767</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/82747767</guid><author>boteman123</author><pubDate>Mon, 17 Sep 2018 20:09:45 +0800</pubDate><description><![CDATA[一：什么是中间件：

           中间件顾名思义，是介于request与response处理之间的一道处理过程，相对比较轻量级，并且在全局上改变django的输入与输出。因为改变的是全局，所以需要谨慎实用，用不好会影响到性能。

二：中间件有什么作用：

             如果你想修改请求，例如被传送到view中的HttpRequest对象。 或者你想修改view返回的HttpR...]]></description><category></category></item><item><title><![CDATA[django中的author模块]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/82745870</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/82745870</guid><author>boteman123</author><pubDate>Mon, 17 Sep 2018 19:21:55 +0800</pubDate><description><![CDATA[1， Auth模块是什么   ：       

Auth模块是Django自带的用户认证模块：

我们在开发一个网站的时候，无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能，这还真是个麻烦的事情呢。

Django作为一个完美主义者的终极框架，当然也会想到用户的这些痛点。它内置了强大的用户认证系统--auth，它默认使用 auth_us...]]></description><category></category></item><item><title><![CDATA[requests 库中的常用用法]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/82527531</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/82527531</guid><author>boteman123</author><pubDate>Sat, 08 Sep 2018 11:00:39 +0800</pubDate><description><![CDATA[get请求：



post请求：





保存读取二进制数据：



文件上传：



获取cookies



 

会话维持：



]]></description><category></category></item><item><title><![CDATA[正则中的re.s]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/82526941</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/82526941</guid><author>boteman123</author><pubDate>Sat, 08 Sep 2018 10:19:20 +0800</pubDate><description><![CDATA[在Python的正则表达式中，有一个参数为re.S。它表示“.”（不包含外侧双引号，下同）的作用扩展到整个字符串，包括“\n”。

举个例子：



正则表达式中，“.”的作用是匹配除“\n”以外的任何字符，也就是说，它是在一行中进行匹配。这里的“行”是以“\n”进行区分的。a字符串有每行的末尾有一个“\n”，不过它不可见。

如果不使用re.S参数，则只在每一行内进行匹配，如果一行没有，就换下一...]]></description><category></category></item><item><title><![CDATA[python中的uuid]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/82466802</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/82466802</guid><author>boteman123</author><pubDate>Thu, 06 Sep 2018 19:44:37 +0800</pubDate><description><![CDATA[一 ： 什么是uuid？     

UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性, 有着固定的大小( 128 bit ).  它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID...]]></description><category></category></item><item><title><![CDATA[python 的垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/81742074</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/81742074</guid><author>boteman123</author><pubDate>Thu, 16 Aug 2018 15:16:37 +0800</pubDate><description><![CDATA[只要是三个方面：

1：引用计数方式

python里每一个东西都是对象，它们的核心就是一个结构体：PyObject
	PyObject是每个对象必有的内容，其中ob_refcnt就是做为引用计数。当一个对象有新的引用时，它的ob_refcnt就会增加，引用它的对象被删除，它的ob_refcnt就会减少
引用计数优缺点

优点
	简单实时,一旦没有引用，内存就直接释放了。不用像其他机制等到特定时机...]]></description><category></category></item><item><title><![CDATA[多路IO复用，mysql简介]]></title><link>https://blog.youkuaiyun.com/boteman123/article/details/81105657</link><guid>https://blog.youkuaiyun.com/boteman123/article/details/81105657</guid><author>boteman123</author><pubDate>Wed, 18 Jul 2018 21:44:42 +0800</pubDate><description><![CDATA[一：IO多路复用

     IO multiplexing这个词可能有点陌生，但是如果我说select/epoll，大概就都能明白了。有些地方也称这种IO方式为事件驱动          IO(event driven IO)。我们都知道，select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理        就是select/epoll这个funct...]]></description><category></category></item></channel></rss>