1.最近公司运维需求,学习python flask 满足环境治理系统的开发;入门如下; 环境类型: Python 2.7.5 获取地址:https://www.python.org/downloads/ Flask 1.0.2 pip 安装使用模快如下; flask==1.0.2 request==1.0.2 Jinja2==2.10 Flask-Cors==3.0.6 MySQL-python==1.2.3 Bootstrap 4.0 获取地址:https://v4.bootcss.com/docs/4.0/getting-started/download/ 开发IDE 工具 pycharm Professional 获取地址:https://www.jetbrains.com/pycharm/ 2.启动flask 实例代码如下; 代码功能如下: (1).访问允许跨域 (2).静态资源目录定义 (3).模板渲染; (4).路由解析 (5).用户表单提交和校验; (6).数据层处理; # -*- coding: utf-8 -*-import sysimport timefrom flask import Flask, request, render_template, Responsefrom flask_cors import CORSfrom models import User###需要安装 pip install -U flask-cors 模块# 解决跨域模块###reload(sys)sys.setdefaultencoding('utf-8')##############定义静态文件存放路径######################### appapp = Flask(import_name=__name__, static_folder='./static', static_url_path='/static', template_folder='./templates')CORS(app, resources=r'/*')# r'/*' 是通配符,让本服务器所有的URL 都允许跨域请求#########@app.route('/', methods=['GET', 'POST']) ####默认首页###########def index(): class Person(object): Email = 'xxxx@163.com' gender = 'male' time = time.asctime(time.localtime(time.time())) dell = Person() context = { 'username': 'breaklinux', 'password': '123456', 'age': '25', 'hobby': 'python', 'person': dell, 'wwwurl': { 'baidu': 'www.baidu.com', 'google': 'www.google.com' } } return render_template('html/index.html', **context) ###################命名规范flask 路由解析##############@app.route('/naming', methods=['GET', 'POST'])def naming(): Query_tow = User() Naming_List_name = Query_tow.Query_naming("环境治理类") Naming_List_name_nuber2 = Query_tow.Query_naming("发布规范类") return render_template('html/naming.html', Naming_List_name=Naming_List_name, Naming_List_name_nuber2=Naming_List_name_nuber2)@app.route('/create_naming', methods=['GET', 'POST'])def create_naming(): return render_template('html/create_naming.html')@app.route("/sigin_naming", methods=['GET', 'POST'])def sigin_naming(): ##########get 方法######request.args ##########post 方法#####rquest.from###### ################获取用户表单输入数据########### naming_name = request.args['naming_name'] naming_url = request.args['naming_url'] naming_type = request.args['naming_type'] create_founder = request.args['naming_create_founder'] ##################获取当前提交时间################### create_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) ####################判断表单用户输入是否为空,为空跳转当前页面############ if ("" == naming_name) or ("" == naming_url) or ("" == create_founder): return render_template('html/create_naming.html') else: #############实例化 models 文件 User 类和携带用户提交表单参数################ user = User() user.save(naming_type,naming_name, naming_url, create_time, create_founder) ##############调用class 类中save方法################ return Response(u'新增成功' + "\n" "日期" + "\n" + create_time)if __name__ == '__main__': app.run( host="0.0.0.0", port=80, debug=True ) 2.views 视图展示层;嫦娥发布规范文档
(2).数据表结构; (和sql语句):
SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `naming`-- ----------------------------DROP TABLE IF EXISTS `naming`;CREATE TABLE `naming` ( `create_time` datetime NOT NULL, `id` int(111) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(20) COLLATE utf8mb4_bin NOT NULL, `name` varchar(20) COLLATE utf8mb4_bin NOT NULL, `url` varchar(100) COLLATE utf8mb4_bin NOT NULL, `create_founder` varchar(20) COLLATE utf8mb4_bin NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
4.视图页面效果;