Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。优点是耦合度大幅度降低,提升了可扩展空间,缺点是复杂了维护性。
使用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
因为学习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的写法
登陆界面
(主界面)index.html
征婚启事
姓名
临潼
年龄
21
住址
汤臣一品
身价
数以亿计
背景
某知名大佬
恋爱经验
无
(另一个界面iframe调用的)biao.html
存在小bug,iframe比较恶心,如果不用的话,可以很完美的实现,只是因为太过简单,不想改,如果有更完美的页面的话,就没事了,主要提供一个方法