初识flask框架

flask简介

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。优点是耦合度大幅度降低,提升了可扩展空间,缺点是复杂了维护性。

创建flask

使用pycharm工具,首先需要在虚拟环境其中安装flask,然后直接创建即可,因为pycharm支持创建flask框架。

分析自动生成的文件

static:主要存放静态页面、js、css、图片之类的文件,可以通过两种方式去调用,有和
templates:主要存放前后端分离的页面,有后端的存在,调用时需要.do方法。
app.py:初始生成的,也是执行文件,内部代码中,先引入flask库的一些模块,然后定义app变量,写url路由,定义函数,调用变量的run方法执行。

手动添加的配置文件

有三种方式(任选其中一个):
1.脚本中直接写入(app.py中)

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'AADASDHASBKJASHAKJ'  #设置项目全局安全密钥

2.单独的配置文件(新建的配置文件config.py)

'''
自定义配置文件(正式发布时的配置文件)
'''
DEBUG = True
SECRET_KEY = 'ASDQWEZXCEFGDFGFSDA'
PAGE_SIZE = 10   #每页显示10条

SERVER_ADDR = '10.0.14.45'   #地址号,用自己的,默认为127.0.0.1
SERVER_PORT = '8080'    #端口号,用自己的,默认为5000

3.定义不同的配置类,想用哪个调用哪个(新建的配置类文件config_class.py)

#都是key—value结构
class DebugConfig():
    DEBUG = True
    SECRET_KEY = 'ASDQWEZXCEFGDFGFSDA'
    PAGE_SIZE = 10  # 每页显示10条
    pass
class DevelomentConfig():
    DEBUG = True
    SECRET_KEY = 'ASDQWEZXCEFGDFGFSDA'
    PAGE_SIZE = 10  # 每页显示10条
    pass
class TestConfig():
    DEBUG = True
    SECRET_KEY = 'ASDQWEZXCEFGDFGFSDA'
    PAGE_SIZE = 10  # 每页显示10条
    pass

添加项目(html、css、img、js等)

因为学习flask之前必须会前端技术,所以应该已经有前端项目了,直接将已经建立好的html文件放入指定位置(上面有)即可。然后根据需求合理调用(python和html有不同,尤其是引入文件方面)

代码示例(内附说明)

其中,/代表根地址,/biaoform.do代表执行到前面的地址,每有一个前后端分离的页面就要有一个路由,同时有一个.do
app.py文件

from flask import Flask,render_template,request,session
import config    #引入配置文件
from config_class import *  #引入类的配置文件

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'AADASDHASBKJASHAKJ'  #设置项目全局安全密钥

#使用config.py文件
app.config.from_object(config)#用文件配置文件
#使用config_class.py文件
app.config.from_object(DebugConfig)#用类的配置文件
#config是字典类型


@app.route('/') #url路由
def index():
    return render_template('index.html')

@app.route('/login.do',methods=['POST','GET']) #登陆界面的路由
def login():
    #传统方法获取名字和密码
    username = request.form.get('username')  #表单提交的数据,用request.form.get来取,如果是链接,用args.get
    userpwd = request.form.get('userpwd')
    #校验
    if username == 'zhangsan' and userpwd == '123456':
        session['username'] = 'zhangsan'
        return render_template('index.html')#成功进入主页
        pass
    elif username != None and (username != 'zhangsan' or userpwd != '123456'):
        return render_template('login.html',message='用户名或密码错误')
    return render_template('login.html')#否则返回登录页

@app.route('/biao.do',methods=['POST','GET']) #登陆界面的路由
def biao():
    return render_template('biao.html')
    pass

@app.route('/biaoform.do',methods=['POST','GET']) #登陆界面的路由
def biaoform():
    return render_template('index.html')
    pass

if __name__ == '__main__':
    app.run( host='10.0.14.45', port=8080, debug=True)   #先将flask_debug打开,然后用脚本,python app.py
    #等同于  host=app.config['SERVER_ADDR'],port=app.config['SERVER_PORT']

(登陆界面)login.html
其中{ {}}是python的写法




    
    登陆界面


    
{ { message }}
用户名:
密码:

(主界面)index.html




	
		
		征婚启事
		
        
	

	
		

		

		

	



(另一个界面iframe调用的)biao.html




	
		
		
		
		
	

	
		

婚书

姓       名:
个人图像:
年       龄:
宣誓内容:
爱       好: 做饭 洗碗 做家务 带孩子 挣钱 洗衣服
住       房:

存在小bug,iframe比较恶心,如果不用的话,可以很完美的实现,只是因为太过简单,不想改,如果有更完美的页面的话,就没事了,主要提供一个方法

你可能感兴趣的:(python,flask,python)