Flask web开发 简单介绍
Flask是一个基于python的轻量级web框架。当安装好后Flask后 (pip install flask),就可以开始使用了。
一、最简单的例子
1、新建目录,作为web应用的目录,如:
mkdir myapp
2、编写 hello.py文件,放在上面的myapp目录下
from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' @app.route('/name')
def hello_name():
return 'my name is hello\n' if __name__ == '__main__':
app.run('0.0.0.0',80)
3、启动flask服务:python hello.py
这时提示
* Running on http://0.0.0.0:80/
然后在浏览器中就可以访问了,如:
http://192.168.142.138 //页面显示Hello World!
http://192.168.142.138/name //页面显示 my name is hello
说明: 如果希望修改py文件后,不用再重启服务,可以加上 如下语句。注意这主要用来调试,不能用于生产环境。
app.debug = True
二、静态资源
可以在应用目录(如上面的myapp目录)下创建目录名为static的目录。
这样就可以把各种静态的资源(如 html, css, js,jpeg等)放在static目录下。
访问静态资源的方式如:
http://192.168.142.138/static/资源名称
三、使用模板
所谓模板,就是在一个html文件中可以加上一些标识,由web引擎传入一些动态信息(来自html请求和服务器的处理),替换html文件中的标记,这样html页面就可以动态变化。在flask中,这样使用模板。举例如下:
1、在应用目录(如上面的myapp目录)下创建目录名为templates的目录。
2、创建 index.html文件放入templates目录下,文件内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="/static/demo.css"/>
</head> <body>
<div> hello</div>
</body>
</html>
这个例子html文件中全是静态信息,没有动态信息。上面文件引用了demo.css文件,位于static目录下(见下面说明)。
3、创建一个demo.css文件,放入应用目录(如上面的myapp目录)下的static目录下。这些静态资源(主要是js,css,图片等)可以被模板文件引用。如上面的index.html文件。demo.css的内容如:
div{
border:1px solid red;
}
4、修改hello.py文件
在文件的前面引入render_template包,可以放在第2行,代码如:
from flask import render_template
增加路由代码
@app.route('/index/')
@app.route('/index/<name>')
def hello(name=None):
return render_template('index.html', name=name)
上面的代码 render_template('index.html', name=name) ,其中render_template方法第一个参数是模板文件,第二个参数是传入到模板中的信息(对上面例子没有意义)。传到模板中的name值可以是来源于url的部分。当然也可以是hello函数中处理的结果。
5、请求
在浏览器输入如
http://192.168.142.138:32768/index
http://192.168.142.138:32768/index/xxx
都会定位到index.html文件
6、动态模板
修改index.html的文件如下:
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
访问:http://192.168.142.138:32768/index/
输出信息为:Hello World!
访问:http://192.168.142.138:32768/index/test
输出信息为:Hello test!
Flask web开发 简单介绍的更多相关文章
- Flask web开发 请求拦截和预处理
我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码
一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...
- Web Services简单介绍
Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- Flask web开发 处理Session
本文我们在上篇文章<Flask web开发 处理POST请求(登录案例)>的基础上,来讲述Flask对session的支持. 在上面案例上,我们需要修改和新增如下功能 1.登录成功后的 ...
- Flask Web开发读书笔记
开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
- [flask/python/web] 解析flask web开发(Miguel著)一书第11章主页不显示博文表单的问题
---------------------------------------------以下内容2017.7.14更新---------------------------------------- ...
随机推荐
- sql语法复习:增删查改,各种数据库对象创建和函数使用
推荐工具:机子配置较低的话,可以装Gsql这个工具获得sql执行环境(可作为手册查看内置数据类型 函数和存储过程等) --之前数据库的东西接触不多,虽然基本的语法是了解,但不是很熟悉--最近项目一直在 ...
- 精简版LVCL,有空看看
http://tothpaul.free.fr/sources.php?lvcl.lvcl1 http://synopse.info/forum/viewtopic.php?id=665
- oracle数据库存储过程中NO_DATA_FOUND不起作用?
1.首先创建一个表lengzijiantest,表中只有一个字段f_id CREATE TABLE LENGZIJIANTEST ( F_ID NUMBER NOT NULL ) 2.插入一条数据 i ...
- JAVA 创建TXT文件,写入文件内容,读取文件内容
[java] view plain copy package com.abin.facade.ws.mail.function; import java.io.BufferedReader; i ...
- 3027 - Corporative Network(并差集)
3027 - Corporative Network A very big corporation is developing its corporative network. In the begi ...
- linux 中多线程使用
/* * 对于线程之间的操作: * 一个进程中会有多个线程,各个线程之间的或向切换会付出很小的代价相比于进程之间的切换 * 为什么要引入多线程: * 1.与进程相比,他是一种非常节俭的多任务的操作方式 ...
- UVA 10312 - Expression Bracketing(数论+Catalan数)
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=1253">10312 - Exp ...
- go语法之一
Go语法: Go语言要求public的变量必须以 大写字母开头,private变量则以小写字母开头,这种做法不仅免除了public.private关键字,更重要的是统一了命名风格. Go语言对{ } ...
- 百度复制SQL语句
本词条从基础知识.判断对象和应用技巧等方面,介绍了SQL(Structured Query Language)结构化查询语言的应用方法. 目录 1基础 ▪ 创建数据库▪ 删除数据库▪ 备份sql se ...
- 在ASP.NET中动态加载内容(用户控件和模板)
在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...