第一个flask程序
flask简介:
flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。目前为止最新的版本是0.11.1。
flask自2010年发布第一个版本以来,大受欢迎,深得开发者的喜爱,并且在多个公司已经得到了应用,flask能如此流行的原因,可以分为以下几点:
微框架、简洁、只能他需要做的,给开发提供了很大的扩展性。
Flask和相关的依赖(Jinja2、Werkzeug)设计得非常优秀,用起来很爽。
开发效率非常高,比如使用SQLAlchemy的ORM操作数据库可以节省开发者大量书写sql的时间。
社会活跃度非常高。
Flask的灵活度非常之高,他不会帮你做太多的决策。即使做已经帮你做出选择,你也能非常容易的更换成你需要的,比如:
使用Flask开发数据库的时候,具体是使用SQLAlchemy还是MonyoEngine或者是不用ORM而直接于MySQL-Python这样的底层驱动进行开发都是可以的,选择权完全掌握在你自己的手中。区别于Django,Django内置了非常完善和丰富的功能,并且如果你想替换成你自己想要的,要么不支持,要么非常麻烦。
把默认的Jinija2模板引擎替换成Mako引擎或者是其他模板引擎都是非常容易的。
### 第一个flask程序讲解:
1.第一次创建项目的时候,要添加flask的虚拟环境。添加虚拟环境的时候,一定要选择到python这个文件。
比如你的flask的虚拟环境的目录在/User/Virtualenv/flask-env/bin/python.
2.flask程序代码的详细解释:
# encoding:utf-8 #从flask这个框架中导入Flask这个类
from flask import Flask #初始化一个Flask对象
#Falsk()
#需要传递一个参数__name__
#1.方便flask框架区寻找资源
#2.方便flask插件比如Flask-Sqlalchemy出现错误的时候,好去寻找问题所在的位置
app = Flask(__name__) #@app.route是一个装饰器
#@开头,并且在函数的上面,说明是装饰器
# 这个装饰器的作用,是做一个url与视图韩式的映射
#127.0.0.1:5000/-->去请求hello_world这个函数,然后将结果返回给浏览器
@app.route('/')
def hello_world():
return 'Hello World!' #如果当前这个文件是作为入口程序运行,那么就执行app.run()
if __name__ == '__main__':
#app.run()
#启动一个应用服务器,来接受用户的请求
#while True:
# listen() app.run()
###设置debug模式
1.在app.run()中传入一个关键字参数debug:app.run(debug=True),就设置当前项目为debug模式
2.debug模式的两大功能:
*当程序出现为题的时候,可以在页面中看到错误信息和出错的位置。
*只要修改了项目的'python'文件,程序会自动加载,不需要手动重新启动服务器。
###使用配置文件:
1.新建一个‘config.py’文件
2.在主app文件中导入这个文件。并且配置到'app',示例代码如下:
import config app.config.from_object(config)
3.还有许多的其他参数,都是放在这个配置文件中,比如‘SECRET_KEY’和‘SQLALCHEMY’这些配置,都是在这个文件中。
###url传参数:
1.参数的作用:可以在相同的URL,但是指定不同的参数,来加载不同的数据。
2.在flask中如何使用参数:
@app.route('/article/<id>')
def article(id):
return u'您请求的参数是:%s'% id
*参数需要放在两个尖括号中。
*视图函数中需要放和url中的参数同名的参数
###反转URL:
1.什么叫做反转URL:从视图函数到url的转换叫做反转url
2.反转日url的用处:
*在页面重定向的时候,会使用url反转
*在模板中,也会使用url反转
###页面跳转和重定向
1.用处:在用户访问一些需要登录的页面的时候,如果用户没有登录,那么可以让他重定向到登录页面
2.代码实现
、、、
from flask import redirect,url
redirect(url_for('login'))
、、、
###Flask渲染Jinja2模板和传参:
1.如何渲染模板:
*模板放在‘templates’文件夹下
*从‘flask’中导入‘render_template’函数。
*在视图函数中,使用‘render_template’
*
第一个flask程序的更多相关文章
- python flask框架学习(二)——第一个flask程序
第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...
- 1、Flask实战第1天:第一个Flask程序
Flask是流行的python web框架...(* ̄︶ ̄) 零基础到企业级论坛实战,人生苦短,我用python,开启FLask之旅吧... 安装开发环境 下载Python win版安装包 双击运行, ...
- Flask框架 之第一个Flask程序
from flask import Flask # 创建flask应用对象 # __name__ 代表当前模块名称 # flask以当前目录为总目录,static目录为静态目录,templates为模 ...
- Flask基础(03)-->创建第一个Flask程序
# 导入Flask from flask import Flask # 创建Flask的应用程序 # 参数__name__指的是Flask所对应的模块,其决定静态文件从哪个地方开始寻找 app = F ...
- 一:flask-第一个flask程序
安装flask:pip install flask,或者pycharm安装 最小模型 访问 后台:
- 【Flask系列】开发一个简单的Flask程序
知识点 初始化:每一个flask程序都必须创建一个程序实例,遵循WSGI(Web Server Gateway interface)协议,把请求->flask Obj; 创建实例: app = ...
- 一个简单的flask程序
初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...
- flask 程序结构概括
以此结构为例,这个小项目是<Flask Web开发:基于python的web应用开发实战>第一部分结束后的代码框架 第一层 有app.tests.migrations三个文件夹和confi ...
- Flask从入门到精通之flask程序入门
初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...
随机推荐
- tcp设置超时重传
TCP超时和重传的基础是怎样根据给定连接RTT设置RTO,若TCP先于RTT开始重传,可能会在网络中引入不必要的重复数据,反之,若延迟至远大于RTT的间隔发送重传数据,整体网络利用率会随之下降.由于R ...
- 当我们谈论CloudTable时究竟在谈论什么?
表格存储服务(CloudTable Service,简称CloudTable)是基于Apache HBase提供的分布式.可伸缩.全托管的毫秒级NoSQL数据存储服务.它提供了毫秒级的随机读写能力,适 ...
- MySQL数据查询结果导出生成文件
select url from news where url like "%美女%" into outfile "/导出的文件路径" : 在这里有个坑,对于 ...
- zabbix监控java内存的脚本
#!/bin/bash # 截取java的pid号 java_pid=`netstat -lnpt |grep |awk -F '/' '{print $1'}` # 截取$jstat命令的位置 js ...
- Spring 配置RMI远程调用
项目中遇到了跨系统调用,当初想的是用webservice或者是hessian.但是这个接口用到的并不多,而且是一个非常简单的方法.所有便想到了RMI.在spring中 实现RMI非常简单. 暴露服务: ...
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_.Net Framework 部署目标
1.解决Windows性能不稳定: 2.降低Windows程序安装的复杂性: 3.解决Windows程序不安全性: 4.解决应用程序状态在硬盘上分散: 5.允许用户灵活地控制哪些东西能够安装,哪些东西 ...
- POJ 2421 Constructing Roads(最小生成树)
Description There are N villages, which are numbered from 1 to N, and you should build some roads su ...
- poj3274 找平衡数列(哈希加一点数学思维)
题目传送门 题目大意:有n只牛,每只牛有k个属性,接下来n个数字,每个数字的二进制位上的1和0分别表示某种属性的有或者无,然后一个特殊数列就是,一个区间内所有牛的各种属性的总和相等(有e种1属性 e ...
- CF E. Vasya and a Tree】 dfs+树状数组(给你一棵n个节点的树,每个点有一个权值,初始全为0,m次操作,每次三个数(v, d, x)表示只考虑以v为根的子树,将所有与v点距离小于等于d的点权值全部加上x,求所有操作完毕后,所有节点的值)
题意: 给你一棵n个节点的树,每个点有一个权值,初始全为0,m次操作,每次三个数(v, d, x)表示只考虑以v为根的子树,将所有与v点距离小于等于d的点权值全部加上x,求所有操作完毕后,所有节点的值 ...
- lintcode - 统计比给定整数小的数的个数(两种方法)
class Solution { public: /* * @param A: An integer array * @param queries: The query list * @return: ...