<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wushaojun321的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wushaojun321</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wushaojun321]]></copyright><item><title><![CDATA[python中函数的默认参数为list时出现异常分析]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53340802</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53340802</guid><author>wushaojun321</author><pubDate>Fri, 25 Nov 2016 21:55:08 +0800</pubDate><description><![CDATA[遇到一个奇怪的现象：'''python
def f(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print lf(2)
f(3,[3,2,1])
f(3)
'''
讲道理来说输出应该是'''python
    [0,1]
    [3,2,1,0,1,4]
    [0,1,4]
'''
可是发现python不讲道理了'''p]]></description><category></category></item><item><title><![CDATA[python基础复习之数字和字符串]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53311890</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53311890</guid><author>wushaojun321</author><pubDate>Wed, 23 Nov 2016 21:05:43 +0800</pubDate><description><![CDATA[1、简述变量、对象、引用的关系（用一到两句话） 
    a = 1 
    a是变量名，1是对象，a引用了1，a没有类型，type(a)==type(1) 
2、对象的两个标准头信息是什么？分别有什么用 
    计数器，类型标识符 
        计数器：判断对象是否已经回收 
        类型标识符：标明对象类型 
3、简述一下对象的回收机制 
    通过计数器实现：当一个对象的引用]]></description><category></category></item><item><title><![CDATA[flask用户关注功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53165845</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53165845</guid><author>wushaojun321</author><pubDate>Mon, 14 Nov 2016 22:32:15 +0800</pubDate><description><![CDATA[从用户到程序： 
1，用户点击关注 
2，请求传给视图函数， 
3，视图函数调用数据库模型 
4，数据库建立此用户与被关注用户的关系 
难点： 
1，于理解数据库多对多的关系 
    书中的思路是创建关联表，化解为两个一对多的关系来解决，关联表包含两列，都是关联自users.id，每一行对应一对关注者与被关注者。 
2，创建获取关注者与被关注着列表的方法 
    上述问题解决之后，这个问题就迎刃]]></description><category></category></item><item><title><![CDATA[近期学习总结]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53134931</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53134931</guid><author>wushaojun321</author><pubDate>Fri, 11 Nov 2016 22:54:34 +0800</pubDate><description><![CDATA[前一个月被蓝图卡主一星期之后，最近学习情况一般： 
 1，跟着flask-web一书敲代码，遇到不懂的查；（主要） 
 2，熟悉HTTP原理，《图解HTTP》 
 3，flask原理的熟悉——WSGI接口的学习，只是大概了解了一下，如果要深入学习flask的话，WSGI是绕不过去的 
 4，python基础的复习，因为最近只是在学flask，用到的python基础相对来说比较少，所以很多学过的都遗忘]]></description><category></category></item><item><title><![CDATA[flask权限管理功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53074611</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53074611</guid><author>wushaojun321</author><pubDate>Mon, 07 Nov 2016 23:45:22 +0800</pubDate><description><![CDATA[权限管理功能的实现可以分为以下几个小块： 
1，新建数据库表Role，里面包括id（Integer，主键）name（String），permission（Integer），default(boolean)。users是指向User模型的对外关系，反向赋给User模型一个role属性，这样就可以同郭User.role来访问Role模型，这样就创建了数据库之间的关系。模型里面还定义了一个静态方法（@st]]></description><category></category></item><item><title><![CDATA[flask重置邮箱功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53056049</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53056049</guid><author>wushaojun321</author><pubDate>Sun, 06 Nov 2016 19:51:08 +0800</pubDate><description><![CDATA[和重置密码大同小异。 
用户操作： 
1，登录状态下获取重置邮箱的表单 
2，提交表单，包含密码，新邮箱 
3，接受重置邮件，并点击验证 
程序执行： 
1，发送给用户表单 
2，接受密码，新邮箱，先验证密码是否正确，再生成token，渲染邮件内容，给邮箱发送链接 
3，接受用户GET请求并将token的值进行验证，若与在线用户ID相同则修改数据库里的邮箱]]></description><category></category></item><item><title><![CDATA[flask重置密码功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53056006</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53056006</guid><author>wushaojun321</author><pubDate>Sun, 06 Nov 2016 19:44:24 +0800</pubDate><description><![CDATA[用户操作： 
1，获取重置密码的页面 
2，发送要重置密码的邮箱 
3，接受邮件并打开重置密码的页面 
4，填写密码并提交 
应用程序执行过程： 
1，返回给用户重置密码的表单 
2，接受用户所填邮箱 
3，验证邮箱是否存在 
4，生成验证链接（token的值） 
5，发送重置邮件 
6，接受用户GET请求并对token的值进行解码，验证是否与前面所填邮箱ID相同 
7，接受用户POST请求，含新密]]></description><category></category></item><item><title><![CDATA[flask修改密码功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53055889</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53055889</guid><author>wushaojun321</author><pubDate>Sun, 06 Nov 2016 19:25:14 +0800</pubDate><description><![CDATA[用户操作过程： 
1，向服务器发送GET请求获取修改密码的表单（在forms.py中实现） 
2，向服务器发送POST请求，含原始密码，新密码 
3，修改成功，跳转到main.index，或者失败弹出失败信息 
应用程序执行过程： 
1，返回用户表单,表单被抽象成python的一个类： 
form.py
    class ChangePasswordForm(Form):
    old_pass]]></description><category></category></item><item><title><![CDATA[flask注册之后邮箱确认功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53048707</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53048707</guid><author>wushaojun321</author><pubDate>Sat, 05 Nov 2016 23:13:23 +0800</pubDate><description><![CDATA[搞了半天终于可以正常运行了，但是还是感觉一团浆糊，总结一下，用户端要完成的操作是这样的： 
1，注册（这时候数据库已经有用户的账户密码了，但是User.confirmed=False,这时是无法正常登陆的） 
2，点开Email验证地址之前登陆（作者构建了一个中间状态路由，当用户注册之后但未确认时登陆就会被重定向到这个路由，这时APP保存了用户的登录状态（但是没有正常权限），之后再点击邮箱里的验证链]]></description><category></category></item><item><title><![CDATA[flask-web开发中登录和注册功能的实现]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53038448</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53038448</guid><author>wushaojun321</author><pubDate>Fri, 04 Nov 2016 19:47:53 +0800</pubDate><description><![CDATA[目录如下：   my_flasky
│  config.py
│  config.pyc
│  data-dev.sqlite
│  manage.py
│
└─app
    │  models.py
    │  models.pyc
    │  __init__.py
    │  __init__.pyc
    │
    ├─auth
    │      forms.py
    │]]></description><category></category></item><item><title><![CDATA[2016年11月3日22:29:47]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53027306</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53027306</guid><author>wushaojun321</author><pubDate>Thu, 03 Nov 2016 22:37:02 +0800</pubDate><description><![CDATA[今天学习《flask-web开发》取得了突破性的进步，从蓝图跨了过来，虽然蓝图里面有些还是不懂，但是基本上影响后面的进度，后面要做的就是按照蓝图的骨架给程序中添加东西，学习flask的各种模块。 
   已经实现登录功能，但是里面的模块，以及模块与模块之间是怎么联系的还是完全摸不到头脑，特别是UserMixin与db.Model，明天这个是学习的重点，睡觉！]]></description><category></category></item><item><title><![CDATA[flask sqlalchemy（二）]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53020360</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53020360</guid><author>wushaojun321</author><pubDate>Thu, 03 Nov 2016 12:37:20 +0800</pubDate><description><![CDATA[引入一对多的数据库关系类型，以Flask-web开发中的示例为例：#encoding:utf8
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemybasedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
db =]]></description><category></category></item><item><title><![CDATA[flask sqlalchemy(一)]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53020251</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53020251</guid><author>wushaojun321</author><pubDate>Thu, 03 Nov 2016 12:11:06 +0800</pubDate><description><![CDATA[参考它的文档，创建如下示例：encoding:utf8
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemya = os.path.dirname(__file__)
basedir = os.path.abspath(os.path.dirname(__file__))#获取当前文件的目录，用以存放dat]]></description><category></category></item><item><title><![CDATA[flask-Bootstrap]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53008191</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53008191</guid><author>wushaojun321</author><pubDate>Wed, 02 Nov 2016 15:07:31 +0800</pubDate><description><![CDATA[最简单用法：.../work/run.pyfrom flask import Flask,render_template
from flask_bootstrap import Bootstrapapp = Flask(__name__)
bootstrap = Bootstrap(app)@app.route('/')
def index():
    return render_template]]></description><category></category></item><item><title><![CDATA[Flask-Blueprint]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/53006858</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/53006858</guid><author>wushaojun321</author><pubDate>Wed, 02 Nov 2016 12:28:10 +0800</pubDate><description><![CDATA[blueprint把不同功能的module分开。可以让应用模块化，针对大型应用。  
蓝图的基本概念：在蓝图被注册到应用之后，所要执行的操作的集合。当分配请求时， Flask 会把蓝图和视图函数关联起来，并生成两个端点之前的 URL 。  
比如只有一个run.py。有些功能需要多人分开来写，有些功能会有交错的可能，代码位置也不会在一起，这样可以用蓝图来开关一些模块（功能）和宏定义类似，但不是可插拔]]></description><category></category></item><item><title><![CDATA[至16年9月11日 学习总结]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/52507151</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/52507151</guid><author>wushaojun321</author><pubDate>Mon, 12 Sep 2016 14:12:08 +0800</pubDate><description><![CDATA[8月26日开始学python至现在，现将学习过程中存在的问题做一个简单的总结：
1，学习目的性不强，在学习一个知识点的时候注意力经常转移到其他知识点，越跑越远，导致学习效率不高。
解决办法：学会先放下，除非碰到一个问题是学习现在正在学习的这个知识点必须掌握的才去研究，只要不
影响或者对正在学习的这个知识点影响不大，都可以先放下。
2，注意力不集中，不是去抽烟就是去旁边玩。
解决办法：人的]]></description><category></category></item><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/wushaojun321/article/details/52506957</link><guid>https://blog.youkuaiyun.com/wushaojun321/article/details/52506957</guid><author>wushaojun321</author><pubDate>Sun, 11 Sep 2016 22:20:27 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item></channel></rss>