python flask框架 flask框架入门
如何部署简单python + flask应用
文章中出现的概念可以看另一篇入门文章。
python flask框架 flask框架入门
python flask框架 flask框架入门
所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系统环境:
Ubuntu 14.04LTS
我们先写一个最基本的flask应用:
demo.py
from flask import Flask app = Flask(name) @app.route('') def index(): return 'Hello World.'
if __name__ == __main__: app.run()
运行这个py文件,打开浏览器访问127.0.0.1:5000就能看实现目标(可以简单的实现web增添改查功能)到显示Hello World的页面 .
如果让这个flask引用来自公网ip的请求,理论上你跑此程序的机器就相当于一个了,然而这个并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀上生产环境的时候能按要求运行。
flask自带的WSGI框架性能劲,只能适用于开发环境调试使用。我们用专业一点的gunicorn(还有很多其他的框架)替代flask自带的WSGI框架。
配置完后,通过命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘启动应用。打开浏览器访问127.0.0.1:5000,同样能够得到返回页面
然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自互联网的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 来替gunicorn遮风挡雨了。
Ubuntu下安装nginx可以用命令
sudo apt-get install nginx
安装后需要进行下配置:
cd /etc/nginx/sites-ailable
sudo vi test (test为配置名称,可以根据自己项目进行命名)
test文件的配置为:
server {
listen 80; # 80端口
location / {
proxy_pass ; # 本机127.0.0.1:5000的服务
}location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 负载均衡
}}
sudo ln -s ../sites-ailable/lwhile . (创建软链接,别漏掉的.)
sudo serv这是一篇教使用python和flask框架来部署最基本的后端服务的文章,适用于想用python开发后台程序的同学。阅读这篇文章需要python和flask的基本知识,以及构建后台程序所需要的网络常识。 nginx reload
sudo serv nginx restart
这样nginx的基本配置文件就写好了 接下来我们配置进程管理工具supervisor supervisor可以在后面启动你的python进程,这样很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test为文件名)
[program:test]
command = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sPython的遍历和迭代udo supervisorctl
4.reload
5.start test
如果一切正常,做完这所有步骤之后,现在公网的ip访问你的主机,就可以打开你的flask应用了
flask编写RESTful API
REST(Representational State Transfer)是一种架构风格,表述了网络中客户端于服务端的一种交互,REST本身是不实用的,关键的是如何设计它。REST架构就是为了HTTP协议设计的。RESTful web servs的核心概念是管理资源。资源是由URIs来表示,客户端使用HTTP当中的'POST,GET, PUT, DELETE'等方法发送请求到,改变相应的资源状态。
Flask是一个基于Python开发的web框架,其中Werkzeug本质是Socket服务端,其用于接收请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户。
一个简单的例子:
这里又两种方法构造服务,中就是利用flask的路由进行构造,另外一种就是利用flask 的扩展插件来构造。首先我们定一种业务场景:
做一个最简单的图书馆里系统,实现如下功能
了解过HTTP的都了解这该如何做,那么使用flask 会怎么构造服务呢?又两种办法 1. 利用路由写。2.利用flask的扩展插件写 接卸来就开始介绍这两种方法如何实现吧!
在实现之前可以使用Flask-Mail的邮件支持超出了我们目前的使用范围,像密件抄送和附件的功能并不会在此应用中得以使用。tman 对接口进行测试
未完is_active方法应该为用户返回True除非用户不是激活的,例如,他们已经被禁了。待续
我在使用python下的flask框架 但是我要怎么实现sso登录
我们可以通过 decorator改进代码。使用装饰器的代码是这样的:单点登录跟登录其实不多,理解了登录也可以搞出单点登录
cd sites-enable回顾
在前面的系列章节中,我们创建了一个数据库并且学着用用户和邮件来填充,但是到现在我们还没能够植入到我们的程序中。 两章之前,我们已经看到怎么去创建网络表单并且留下了一个实现完全的登陆表单。
在这篇文章中,我们将基于我门所学的网络表单和数据库来构建并实现我们自己的用户登录系统。教程的我们小程序会实现新用户注册,登陆和退出的功能。
import os
from flaskext.login import LoginMar
from flaskext.openid import OpenID
from config import basedir
lm = LoginMar()
lm.setup_app(app)
oid = OpenID(app, os.path.join(basedir, 'tmp'))
Flask-OpenID 扩展为了可以存储临时文件,需要一个临时文件夹路径。为此,我们提供了它的位置。
重访我们的用户模型
Flask-Login扩展需要在我们的User类里实现一些方法。除了这些方法以外,类没有被要求实现其它方法。
下面是我们的User类 (fileapp/models.py):
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
nickname = db.Column(db.String(64), unique = True)
email = db.Column(db.String(120), unique = True)
role = db.Column(db.SmallInteger, default = ROLE_USER)
ts = db.relationship('Post', backref = 'author', lazy = 'dynamic')
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
return unicode(self.id)
def __repr__(self):
return '
is_authenticated方法是一个误导性的名字的方法,通常这个方法应该返回True,除非对象代表一个由于某种原因没有被认证的用户。
is_anonymous方法应该为那些不被获准登录的用户返回True。
,get_id方法为用户返回的unicode标识符。我们用数据库层生成的id。
用户加载回调
现在我们通过使用Flask-Login和Flask-OpenID扩展来实现登录系统
首先,我们需要写一个方法从数据库加载到一个用户。这个方被Flask-Login使用(fileapp/views.py):
@lm.user_loader
def load_user(id):
return User.query.get(int(id))
记住Flask-Login里的user id一直是unicode类型的,所以在我们把id传递给Flask-SQLAlchemy时,有必要把它转化成integer类型。
登录视图函数
接下来我们要更新登录视图函数(fileapp/views.py):
from flask import render_template, flash, redirect, session, _for, request, g
from flaskext.login import login_user, logout_user, current_user, login_required
from app import app, db, lm, oid
from models import User, ROLE_USER, ROLE_
@oid.loginhandler
def login():
return redirect(_for('index'))
form = LoginForm()
if form.validate_on_submit():
session['remember_me'] = form.remember_me.data
return oid.try_login(form.openid.data, ask_for = ['nickname', 'email'])
return render_template('login.html',
title = 'Sign In',
form = form,
providers = app.config['OPENID_PROVIDERS'])
注意到我们导入了一些新的模块,其中有些后面会用到。
跟上个版本的变化很小。我们给视图函数添加了一个新的装饰器:oid.loginhandler。它告诉Flask-OpenID这是我们的登录视图函数。
在方法体的开头,我们检测是是否用户是已经经过登录认证的,如果是就重定向到index页面。这儿的思路是如果一个用户已经登录了,那么我们不会让它做二次登录。
全局变量g是Flask设置的,在一个request生命周期中,用来存储和共享数据的变量。所以我猜你已经想到了,我们将把已经登录的用户放到g变量里。
我们在调用redirect()时使用的_for()方法是Flask定义的从给定的view方法获取。如果你想重定向到index页面,你h很可能使用redirect('/index'),但是我们有很好的理由让Flask为你构造。
当我们从登录表单得到返回数据,接下来要运行的代码也是新写的。这儿我们做两件事。首先我们保存remember_me的布尔值到Flask的session中,别和Flask-SQLAlchemy的db.session混淆了。我们已经知道在一个request的生命周期中用Flask的g对象来保存和共享数据。沿着这条线路Flask的session提供了更多,更复杂的服务。一旦数据被保存到session中,它将在同一客户端发起的这次请求和这次以后的请求中永存而不会消亡。数据将保持在session中直到被明确的移除。为了做到这些,Flask为每个客户端建立各自的session。
下面的oid.try_login是通过Flask-OpenID来执行用户认证。这个方法有两个参数,web表单提供的openid和OpenID provider提供的我们想要的list数据项。由于我们定义了包含nickname和email的User类,所以我们要从找nickname和email这些项。
基于OpenID的认证是异步的。如果认证成功,Flask-OpenID将调用有由oid.after_login装饰器注册的方法。如果认证失败那么用户会被重定向到login页面。
Flask-OpenID登录回调
这是我们实现的after_login方法(app/views.py)
@oid.after_login
def after_login(resp):
if resp.email is None or resp.email == "":
flash('Invalid login. Please try again.')
redirect(_for('login'))
user = User.query.filter_by(email = resp.email).first()
if user is None:
if nickname is None or nickname == "":
nickname = resp.email.split('@')[0]
user = User(nickname = nickname, email = resp.email, role = ROLE_USER)
db.session.add(user)
db.sessionmit()
if 'remember_me' in session:
remember_me = session['remember_me']
session.pop('remember_me', None)
login_user(user, remember = remember_me)
传给after_login方法的resp参数包含了OpenID provider返回的一些信息。
个if声明仅仅是为了验证。我们要求一个有效的email,所以一个没有没提供的email我们是没法让他登录的。
接下来,我们将根据email查找数据库。如果email没有被找到我们就认为这是一个新的用户,所以我们将在数据库中增加一个新用户,做法就像我们从之前章节学到的一样。注意我们没有处理nickname,因为一些OpenID provider并没有包含这个信息。
做完这些我们将从Flask session中获取remember_me的值,如果它存在,那它是我们之前在login view方法中保存到session中的boolean类型的值。
然后我们调用Flask-Login的login_user方法,来注册这个有效的登录。
做这个工作Flask-Login需要知道用户当前在那个页面。我们可以在app的初始化组件里配置它(app/__init__.py):
lm = LoginMar()
lm.setup_app(app)
lm.login_view = 'login'
全局变量g.user
如果你注意力很集中,那么你应该记得在login view方法中我们通过检查g.user来判断一个用户是否登录了。为了实现这个我们将使用Flask提供的before_request。任何一个被before_request装饰器装饰的方法将会在每次request请求被收到时提前与view方法执行。所以在这儿来设置我们的g.user变量(app/views.py):
@app.before_request
def before_request():
g.user = current_user
这就是它要做的一切,current_user全局变量是被Flask-Login设定的,所以我们只需要把它拷贝到更容易被访问的g变量就OK了。这样,所有的请求都能访问这个登录的用户,甚至于内部的模板。
index视图
在之前的章节中我们用代码遗留了我们的index视图,因为那个时候我们系统里并没有用户和博客文章。现在我们有用户了,所以,让我们来完成它吧:
@app.route('/index')
@login_required
def index():
user = g.user
ts = [
{'author': { 'nickname': 'John' },
'body': 'Beautiful day in Portland!'
},
{'author': { 'nickname': 'Susan' },
'body': 'The Avengers movie was so cool!'
}]
return render_template('index.html',
title = 'Home',
user = user,
ts = ts)
在这个方法中只有两处变动。首先,我们增加了login_required装饰器。这样表明了这个页面只有登录用户才能访问。
另一个改动是把g.user传给了模板,替换了之间的对象。
现在可以运行我们的应用了。
当我们连接到你将会看到登陆页面。记着如果你通过OpenID登录那么你必须使用你的提供者提供的OpenID URL。你可以下面URL中的任何一个OpenID provider来为你产生一个正确的URL。
作为登录进程的一部分,你将会被重定向到OpenID提供商的网站,你将在那儿认证和授权你共享给我们应用的一些信息(我们只需要email和nickname,放心,不会有任何密码或者其他个人信息被曝光)。
一旦登录完成你将作为已登录用户被带到index页面。
试试勾选remember_me复选框。有了这个选项当你在浏览器关闭应用后重新打开时,你还是已登录状态。
注销登录
我们已经实现了登录,现在是时候来实现注销登录了。
注销登录的方法灰常简单(file app/views.py):
@app.route('/logout')
logout_user()
return redirect(_for('index'))
但我们在模板中还没有注销登录的链接。我们将在base.html中的顶部导航栏添加这个链接(file app/templates/base.html):
{% if title %}
{% else %}
{% endif %}
{% with messages = get_flashed_messages() %}
{% if messages %}
- {{ message }}
{% for message in messages %}
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
这是多么多么简单啊,我们只需要检查一下g.user中是否有一个有效的用户,如果有我们就添加注销链接。在我们的模板中我们再一次使用了_for方法。
的话
我们现在有了一个全功能的用户登录系统。在下一章中,我们将创建用户的页,并显示用户的头像。
Python三大web框架分别是什么 哪个更好
return redirect(request.args.get('next') or _for('index'))Django
在大多数此类教程中都会不遗余力的介绍如何使用数据库。今天我们对数据库暂且不表,而是来关注另一个在web应用中很重要的特性:如何推送邮件给用户。Django走的大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的,给开发者提高了超高的开发效率。
重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。
自带ORM和模板引擎,支持jinja等非模板引擎。
自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库
自带数据库管理app
成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。python web框架的先驱,第三方库丰富。
Flask
Flask是轻量级的框架,自由、灵活、可扩展性强,核心基于Werkzeug WSGI工具和jinja2模板引擎。
适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计。
与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django。
Torna继承和多继承do
Tornado走的是少而精的方向,性能优越,它最出名的异步非阻塞的设计方式。
Tornado的两大核心模块:
iostraem:对非阻塞的socket进行简单的封装。
ioloop:对I/O多路复用的封装,它实现一个单例。
FastAPI - 一款新型的 Python Web 框架(对比 Flask)
thr = threading.Thread(target = send_async_email, args = [msg])近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇在前面的章节,我们开始配置我们将要用到的Flask扩展。为了登录系统,我们将使用两个扩展,Flask-Login 和 Flask-OpenID. 配置如下所示 (fileapp__init__.py): Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了 FastAPI 这么一款集成了 Swagg?7er UI 的更新的 Python Web 框架。起初想要在标题中表达的意思大概是 Flask + Swagger = FastAPI, 后来发现 FastAPI 的闪亮点不仅如此,顺便找了些 Flask 与 FastAPI 对比的文章来,在文后附有链接。
python一般是学什么框架?
@app.route('/login', mods = ['GET', 'POST'])1、Django
Keras是一个极简的、高度模块化的神经网络库,采用Python(Python2.7-3.5.)开发,能够运行在TensorFlow和Theano任一平台,好项目旨在完成深度学习的快速开发。keras的几大特点:文档齐全、上手快速、纯Python编写、关注度高更新迅速、活跃、就是运行速度不太快,当有的人就是不care速度。Django是一个开放源代码的Web应用框架,采用了MVC的框架模式,即模型M,视图V和C。Django的主要目的是简便、快速的开发数据库驱动的网站,强调快速开发和DRY(Do Not Repeat Yourself)原则。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架。Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包,这使得Djangdef send_async_email(msg):o具有很强的可扩展性。
2、Flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架,它使用简单的核心,没有默认使用的数据库、窗体验证工具,用extension 增加其他功能,也被称为 "microframework" 。
3、Tornado
Tornado是一种 Web 软件的开源版本,独特之处在于其所有开发工具能够使用在应用开发的任意阶段以及任何档次的硬件资源上。而且完整集的Tornado工具可以使开发人员完全不用考虑与目标连接的策略或目标存储区大小。
Flask前言 - Python WSGI
MAIL_PASSWORD = your-gmail-passwordWSGI(Web Gateway Intece) 的任务就是把上面的数据在 server 和 python 程序之间简单友好地传递。它是一个标准,被定义在 PEP 333 。需要 server 和 python 程序都要遵守一定的规范,实现这个标准的约定内容,才能正常工作。
我们想send_email 函数发完邮件后立即返回,需要让发邮件移动到后台进程来异步执行。application端定义非常简单,它只要求开发者实现一个函数来响应HTTP请求。
一步是处理“follow”过程,即触发邮件提醒时的视图函数,(fileapp/views.py):envrion 和 start_response 这两个参数由服务端提供,PEP333里给出了一个wsgi server的简单实现:
可以看到结果为 wsgi_client.py 中定义的 hello world
Flask框架中的一个核心库 werkzeug 其实就是Python的WSGI规范的实用函数库
请几个比较的Python开源项目,用来学习的?
def logout():许多开发者都有定期浏览GitHub的习惯,对于GitHub上如此众多的项目,有人不断分享,有人不断Mark。每个人浏览的时候,都会注意到Star的数量,它代表着这个项目的热度,我盘点GitHub上Python语言中最火的15个开源项目。希望对你有帮助,排名如下:
学习阶段如下,希望对你有帮助!1、机器学习系统tensorflow
Google的TensorFlow是的开源AI库之一。它的高计算效率,丰富的开发资源使它被企业和个人开发者广泛采用。TensorFlow是一个采用数据流图,用于数值计算的开源软件库。TensorFlow最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
2、oh-my-zsh
oh-my-zsh是基于zsh的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。Zsh和bash一样,是一种Unixshell,但大多数Linux发行版本都默认使用bashshell。但Zsh有强大的自动补全参数、文件名、等功能和强大的自定义配置功能。
3、命令行HTTP工具包ie
HTTPie是一个命令行HTTP客户端,提供命令行交互方式来访问HTTP服务。其目标是使CLI与Web服务的交互尽可能人性化。它提供了一个简单的命令,允许使用简单自然的语法发送任意HTTP请求。
4、shell命令行拓展the
首先这个项目的名字就很引人注目,取名为the的原因是任何情况下你想说“”,你都可以用得到the。theFuck是一个高可配置的应用,用户可以开启或关闭规则、配置UI、设置规则选项还有进行其他的作。Fuck的UI很简单,它允许用户通过(上下)箭头的方式在修正过的命令列表中进行选择,使用Enter来确认选择,Ctrl+C来跳出程序。不足的是在Python标准库中没有办法在非Windows下不通过curses来读取键盘输入。
5、Python框架Flask
Flask是一个的Python开发的Web框架,基于WerkzeugWSGI工具箱和Jinja2模板引擎。Flask使用BSD授权。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
6、PythonWeb框架Django
Django是Python编程语言驱动的一个开源模型-视图-(MVC)风格的Web应用程序框架。但是在Django中,接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。使用Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。
7、jQuery-File-Upload
jQueryFileUpload是一个jQuery上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示大小,支持上传进度条显示;支持各种动态语言开发的端。
8、Python的HTTP客户端库requests
requests是Python的一个HTTP客户端库,跟lib,lib2类似,那为什么要用requests而不用lib2呢?以为Python的标准库lib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。看了requests的文档,确实很简单,尤其适合懒人。
9、计算机系统配置管理器ansible
Ansible提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible是一个模型驱动的配置管理器,支持多发布、远程任务执行。默认使用SSH进行远程连接。无需在被管理上安装附加软件,可使用各种编程语言进行扩展。
1from forms import LoginForm0、Web爬虫框架scrapy
Scrapy是Python开发的一个快速,高层次的屏幕抓取和Web抓取框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种,非常之方便。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sap爬虫等。
11、Python的机器学习项目scikit-learn
scikit-learn是一个Python的机器学习项目。是一个简单高效的数据挖掘和数据分析工具。基于NumPy、SciPy和matplotlib构建。基于BSD源许可证。scikit-learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理。
12、神经网络库keras
13、WebTornado
Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由Friendfeed开发。通过使用非阻塞IO,Tornado可以处理数以万计的开放连接,是longpolling、WebSockets和其他需要为用户维护长连接应用的理想选择。Tornado跟其他主流的Web框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。
14、Python解释器CPython
CPython是用C语言实现的Python解释器,也是的并且是最广泛使用的Python解释器。除了CPython以外,还有用JAVA实现的Jython和用.NET实现的IronPython,使Python方便地和JAVA程序、.NET程序集成。另外还有一些实验性的Python解释器比如PyPy。
CPython是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括C语言)交互的外部函数接口。
15、工具包CNTK
来自微软公司的CNTK工具包的效率,“比我们所见过的都要疯狂”。这部分归功于CNTK可借助图形处理单元(GPU)的能力,微软自称是公开“可扩展GPU”功能的公司。(从单机上的1个、延伸至超算上的多个)在与该公司的网络化GPU系统(称之为AzureGPULab)匹配之后,它将能够训练深度神经网络来识别语音,让Cortana虚拟助理的速度达到以前的十倍。去年4月的时候,CNTK就已经面向研究人员开放,只是当时的开源授权限制颇多。不过现在,它已经开放了,而深度学习的初创者们将最为受益。
以上就是我盘点GitHub上Python语言中最火的15个开源项目。希望能帮到大家!请几个比较的Python开源项目,用来学习的?
一套完整的python学习体系是什么,如何进行学习
cd ..阶段
Python的过去和现状、生态圈介绍、职业发展
Python开发环境的搭建
语法基础(对象和类型、运算符等等)
流程控制语句
人机交互
算法理解(贪心算法、枚举算法、迭代算法等常用算法介绍)
Python开发的代码规范和思想
案例解析
第二阶段
数据与数值、变量
常用数据结构详解
字符串
列表
元祖
字典
基本控制结构的程序设计
案例解析
第三阶段
Python模块介绍与使用
序列持久化
函数式编程基础和概念
函数的定义和调用
作用域
参数详解
递归和分治的思想和开发实战
栈的数据结构
栈和函数调用
异常处理
案例解析
第四阶段
Python充电时刻
Python标准库与企业化应用
系统管理模块
数据库模块
网络处理模块
文件处理模块
实践——正则表达式的处理
Paramiif g.user is not None and g.user.is_authenticated():ko模块的使用
案例解析
基本的面向对象分析和设计
UML建模技术的介绍和运用
Python面向对象编程跳转到下一页的这个概念很简单。比方说我们需要你登录才能导航到一个页面,但你现在并未登录。在Flask-Login中你可以通过login_required装饰器来限定未登录用户。如果一个用户想连接到一个限定的,那么他将被自动的重定向到login页面。Flask-Login将保存最初的作为下一个页面,一旦登录完成我们便跳转到这个页面。概念
类的基本语法
Self的意义
构造函数和析构函数、__call__
静态和动态的字段和方法
类的私有特性
新式类和经典类
过程式编程Vs面向对象编程
如何自定义异常类
案例解析
第六阶段
Web Flask框架
简单的html(table、表单)学习
简单web框架Flask介绍
前端jquery
作业1:写一个用户注册的html表单(数据存在文件里,支持增删查)
第七阶段
数据库基础
简单的sql语句学习(增添改查)、数据库建表
Python执行sql,控制数据库
项目1:用Flask实现数据库的增添改查
项目目的(对Flask、MySQLdb的学习)
将第六次的作业,存储改为mysql
第八阶段
Django的介绍和安装
创建一个网站
模板的变量和模板的语法
定义和使用模型
模版及表单处理
用户权限设计和会话处理
第九阶段
前端基础
css
jascript基础
前端学习之jquery
Ajax调用Python接口
Bootstrap框架学习
作业:对第7次的Flask增删改查提供前端页面,通过web页面对数据库增删改查
要求:异步加载数据,不刷新页面
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。