Flask快速入门及实战

Flask:

flask是一个微框架,主要面向需求简单的小应用,是基于Werkzeug,Jinja 2 的Python微架构(微框架 的核心意图是将Web工程项目的核心部分进行高度集中并且尽量简单,从而在整个Web工程中形成一个独立的部分,同时其余部分可以根据我们的需求任意扩展)。
Flask快速入门及实战_第1张图片
简单的代码实例;

from flask import Flask
#创建Flask的实例
app = Flask(__name__) 
@app.route("/")   #URL路由,将url与服务器绑定
def hello ( ): 
    return "Hello World!"

常用的配置方法;

1. 脚本直接写入`
app.config['SECRET_KEY'] = 'some strange words'   # 设置全局属性参数语法
2. 配置单独文件;(同3)

简单来说就是脚本太多了,放在主题代码里面不够美观简练,因此要单独建立文件,然后引入。

3. 不同配置类:

大型项目需要多个配置组合,比如开发时的配置,测试的配置,部署的配置……这样我们需要在配置文件里创建不同的配置类,然后在创建程序实例时引入相应的配置类。最佳实践是创建一个存储通用配置的基类,然后为不同的使用使用场景创建新的继承基类的配置类。
(最后引入这个文件然后调用相关的类就可以了)

class Debugconfig():
    DEBUG = True
    SECRET_KEY = 'BBBBBBBBB'
    PAGE_SIZE = 10

class Developconfig():
    DEBUG = True
    SECRET_KEY = 'BBBBBBBBB'
    PAGE_SIZE = 10

class Testconfig():
    DEBUG = True
    SECRET_KEY = 'BBBBBBBBB'
    PAGE_SIZE = 10

在Flask框架中使用route()装饰器将一个URLs地址与请求处理函数绑定。

@app.route('/login.do',methods=['POST','GET'])   # 设置请求地址携带参数,不写method默认只接受GET方法

在Falsk中对静态文件的处理;

  • 静态网页(模板)的创建需要在工程文件夹中创建 templates 子文件夹,今后所有的html网页都放在该文件夹中;
  • 样式表、图片等静态资源的创建需要在工程文件夹中创建 static 子文件夹,今后所有的静态文件都放在该文件夹中。

Flask快速入门及实战_第2张图片
html静态页面应用外部CSS样式表的两种方式:





  • _external=True 参数为可选参数,其作用是引用方式的不同:
    _external 参数为True,引用地址为:http://localhost:5000/static/css/style.css
    _exernal 参数为False,引用地址为:/css/style.css (不使用该参数,默认为False)

模板中的表达式:

在Flask框架模板(即工程中的HTML页面)中,可以使用 { { variable }} 双括号输出动态变量值。
变量可以是网页内临时声明的变量,更多情况下是传递到页面的参数变量(字符串、数字、字典等等)


你好 { { name }}

同意可以使用{% 结构化表达式 %} 表示各结构化语句(判断、循环等)


{% if 表达式 %}
……

{% else %}
……

{% endif %}

1. 创建Flask项目:

Flask快速入门及实战_第3张图片

创建成功之后会如下图所示:

Flask快速入门及实战_第4张图片

2. 建立相应的文件(html文件,style.css等):

Flask快速入门及实战_第5张图片

datashow.py代码:
import config                      #引入config文件
from config_class  import *   #不同配置类     
from flask import Flask,render_template,request,Response,session


# Flask类的实例
app = Flask(__name__)

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'BBBBBBBBB'


#使用config文件
app.config.from_object(config)
#使用config类
app.config.from_object(Debugconfig)

@app.route('/')   # URL路由 将url与服务器绑定
def index():
    return render_template('index.html')

@app.route('/login.do',methods=['POST','GET'])
def login():
    #表单提交的数据用request.form
    username = request.form.get('userName')
    userpwd = request.form.get('userPwd')

    if username == 'zhangsan' and userpwd =='123456':
        session['user'] = 'zhangsan'
        return render_template('index.html')

    elif username != None and (username == 'zhangsan' and userpwd !='123456'):
        return render_template('login.html',message='用户名或者密码错误')

    return render_template('login.html')


if __name__ == '__main__':
    app.run(host='10.0.14.216',port=8080, debug=True)
index.html文件:


	
		
		
		
		
	
	
		
		
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
  • 人工智能
a
左广告
右广告
login.html代码:



    
    Title
    
    



    
{ {message}}
用户名:
密码:
style.css代码:

(部分代码是无效的,因为这是以前使用过的css,所以为了简便就直接复制过来了。)

@charset "utf-8";
body{
	text-align: center;
}
div{
	/*background-color: darkgrey !important;
	background-color: #2E8B57 !important;*/
}
table{
	BACKGROUND-COLOR: seagreen;
	font-family: "楷体";
	font-size: 50px;
	width: 400px;
}

TABLE{
	background-color: #FF00FF;	
}

#P1{
	background-color: ghostwhite;
}
#p1{
	background-color: lightgreen;
}
.C1{
	background-color: #FF00FF;
}

.C2{
	font-family: "mv boli";
	font-size: 20px;
}
h1,h2,h3,h4,h5{
	color: #2E8B57;
}
ul li .name2{
	
}
a:visited{
	color: white;
}
a:hover{
	color:white;
}

运行效果图:

Flask快速入门及实战_第6张图片

登陆页面:

Flask快速入门及实战_第7张图片

登陆成功:

Flask快速入门及实战_第8张图片

登陆失败:

Flask快速入门及实战_第9张图片

你可能感兴趣的:(Flask,Flask)