Python学习记录

Python的创始人为
吉多·范罗苏姆
(Guido van Rossum)

    Python英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象直译式电脑程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    与SchemeRubyPerlTcl动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

    Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计面向对象程序设计函数式编程面向侧面的程序设计泛型编程多种编程范式。

secure_filename() 中文出错

2018年07月29日

最近在处理文件上传的时候,出问题了。当上传中文文件的时候,使用Werkzeug提供的secure_filename()函数来处理文件名,当遇到中文的时候获取到的文件名为空。具体的代码在这篇文章:Flask文件上传出现问题的原因:secure_filename()函数只返回ASCII字符,非ASCII字符会被过滤掉。解决方案:中文文件名需要转换成英文,可以使用pypinyin来转换(使用pip安装)...

SQLAlchemy 产品模型设计

2018年07月29日

最近需要设计一个产品表,类似于网上商城的这种:具体代码如下:# 材料类别 class MaterialClassification(db.Model): __tablename__ = 'material_classification' id = db.Column(db.Integer, primary_key=True) classification_name ...

Flask文件上传

2018年07月25日

最近需要上传用户头像,使用的是jqyer.ajax,在使用的时候中间有一些问题,具体可以参考这里:contentType = false相关问题思考<!-- CHANGE AVATAR TAB --><div class="tab-pane" id="tab_1_2"> <p> 请上传小于3M的文件。 </p> <form action="{{ url_for('manage.uplo...

Flask 视图参数过滤

2018年07月25日

先看一下在Flask中,如何过滤用户输入:@manage.route('/top_menu/<string:username>', methods=['GET'])@login_requireddef top_menu(username): user_info = User.query.get_or_404(username) return render_template('_topM...

flask 多个form.csrf_token如何处理

2018年07月21日

最近有一个页面有多个,但是每次只提交一个表单。使用{{ form.csrf_token }}保护表单,避免跨域请求。但是当表单有多个{{ form.csrf_token }}的时候,id都是一样的,会出现如下提示:[DOM] Found 2 elements with non-unique id #csrf_token: (More info: https://goo.gl/9p2vKq)看看生成...

nginx 配置不当导致url_for('')出问题

2018年07月21日

最近一边写程序,一边发布,但是有一个地方始终有问题,当点击登陆的时候,用户名和密码都正确,跳转到管理界面,但是url始终错误:本来应该是http://pdflibr.com/manage/index,但是却变成了:http://pdflibr.com%2Cpdflibr.com/manage/index。后台代码如下所示:@auth.route('/login', methods=['GET', ...

flask 更新数据库失败

2018年07月19日

在使用SQLALchemy更新数据的时候,一直不成功。数据更新的方式采用ajax,具体代码如下:$(function () { $('#user_profile').click(function (event) { event.preventDefault(); //prevent the actual form post user_profile(...

405 (METHOD NOT ALLOWED)

2018年07月19日

在使用Flask的时候,报如下错误:405 (METHOD NOT ALLOWED)原因:是因为视图文件没有写清楚提交方式。错误代码如下:@manage.route('/user/') @login_required def user(username): # 判断当前登陆用户名 get_current_username = current_user.username ...