【Flask】Python-Flask快速入门Helloworld

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 【Flask】Python-Flask快速入门Helloworld

@TOC


# 一、Flask-HelloWorld项目结构 ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/cff171e9c1aa434ab68df5426bf54707.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_10,color_FFFFFF,t_70,g_se,x_16) # 二、基本操作 ## 1. app.py ```python import numpy as np from flask import * from util import * import json from flask_sqlalchemy import SQLAlchemy # 解决python3数据库连接问题 # MySQLdb只支持Python2.*,还不支持3.* 可以用PyMySQL代替。 import pymysql pymysql.install_as_MySQLdb() from util.ReslutReturn import * # 指明工程文件,代表当前py文件所在目录为工程目录 __name__ == '__main__' app = Flask(__name__,static_folder='static',static_url_path='/static',template_folder='templates') # 配置对象加载配置信息 class DefaultConfig(object): """ 默认配置 """ KEY = 'wskh45700037' # 设置app配置 # app.config.from_object(DefaultConfig) app.config.from_pyfile('setting.py') # 创建蓝图对象 user_bp = Blueprint('user',__name__) # 注册蓝图 app.register_blueprint(user_bp,url_prefix="/user") # 数据库配置 绑定app db = SQLAlchemy(app) # 创建数据库模型类 class CbyUser(db.Model): """ user表 """ __tablename__ = "cby_user" id = db.Column(db.String,primary_key=True) name = db.Column(db.String) nick_name = db.Column(db.String) password = db.Column(db.String) email = db.Column(db.String) phone = db.Column(db.String) identity_id = db.Column(db.String) detail = db.Column(db.String) insert_time = db.Column(db.String) update_time = db.Column(db.String) def asDict(self): return {"id":self.id,"name":self.name,"nick_name":self.nick_name,"password":self.password,"email":self.email,"phone":self.phone,"identity_id":self.identity_id,"detail":self.detail} # 全局异常处理 @app.errorhandler(500) def errorHandle(e): return error("全局异常捕获!") # 指定异常捕获 @app.errorhandler(ZeroDivisionError) def zero_error(e): return error("除数不能为0!") # 定义视图 @app.route('/') # @app.post() # @app.get() # @app.delete() # @app.put() def hello_world(): key = app.config["KEY"] print(key) return 'Hello World!' @app.route('/aaa') def hello_Blueprint(): key = app.config["KEY"] print(key) return 'Hello user_bp!' @app.route("/user/") def getUserById(userId): return str(userId) @app.route("/testR/") def testR(userId): user = User() userJson = user.asJson() lis = [userJson,userJson,userJson,userJson,userJson] r = ok("message",lis) # r = error() return r @app.route("/testDb") def testDb(): userList = CbyUser.query.all() userDictList = [] for i in range(len(userList)): userDictList.append(userList[i].asDict()) print(userDictList) return ok("查询成功",userDictList) class MyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.integer): return int(obj) elif isinstance(obj, np.floating): return float(obj) elif isinstance(obj, np.ndarray): return obj.tolist() elif isinstance(obj, bytes): return str(obj, encoding='utf-8') else: return super(MyEncoder, self).default(obj) class User: def __init__(self): self.name = "wskh" self.id = '111' def asJson(self): return {"name":self.name,"id":self.id} if __name__ == '__main__': # 以5454端口运行 app.run(port=5454) ``` ## 2. setting.py 这里面用来写一些关于数据库的连接配置 ```python # -*-coding:utf-8-*- # 密钥 随便设置 KEY = "wskh66666666666666666" # jdbc:mysql://localhost:3306/cby?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC # "mysql://root:mysql@127.0.0.1:3306/cby" SQLALCHEMY_DATABASE_URI = "mysql://%s:%s@%s/%s" % ('用户名', '密码', 'ip', '数据库名称') # 设置这一项是每次请求结束后都会自动提交数据库中的变动 SQLALCHEMY_COMMIT_ON_TEARDOWN = True ``` ## 3. ReslutReturn.py 统一信息返回处理 ```python # -*-coding:utf-8-*- success_code = 200 error_code = 500 def ok(message="请求成功",data=None): dic = {'code':success_code,'message':message,'data':data} return dic def error(message = "请求失败",data=None): dic = {'code':error_code,'message':message,'data':data} return dic ```
# 三、效果展示 运行app.py ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/dc56f2b067b245149503b2e9caf6b58b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_20,color_FFFFFF,t_70,g_se,x_16) 点击下方链接 ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/b2b9e0f2a049410e8e69b66dad7db0f9.png) ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/7fcd5942ecf04d6bbd925a74e0ef6708.png) 可以看到hellworld成功显示了! 继续在网址后追加/testDb 测试和数据库的连接(完整url:http://127.0.0.1:5454/testDb) ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/753f8e3174aa4ccebfe10c220d1693c3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看到数据库信息正常返回了! 而且之前设定的统一结果返回中的成功状态码200也成功加入其中了! ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/9c968b6e2f5b4ec5adca3b58b054bd93.png) 好啦!关于flask的简单入门就到此结束了,喜欢的小伙伴可以点个关注,后续会不定时更新~
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
机器学习/深度学习 数据挖掘 索引
Python数据分析(一)—— Numpy快速入门
Python数据分析(一)—— Numpy快速入门
|
5月前
|
固态存储 Shell iOS开发
Python快速入门体验(上)
Python快速入门体验
39 0
|
1月前
|
SQL 数据挖掘 数据处理
Python数据分析(二)—— Pandas快速入门
Python数据分析(二)—— Pandas快速入门
|
16天前
|
数据采集 存储 前端开发
Python爬虫如何快速入门
写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫。
20 0
|
1月前
|
缓存 数据安全/隐私保护 Python
Python快速入门:类、文件操作、正则表达式
Python快速入门:类、文件操作、正则表达式
|
1月前
|
索引 Python
Python快速入门:Python对象
Python快速入门:Python对象
|
1月前
|
人工智能 IDE 大数据
|
5月前
|
人工智能 Java 开发工具
Python快速入门体验(下)
Python快速入门体验(下)
37 0
|
4月前
|
人工智能 IDE Linux
Python从入门到精通之安装与快速入门
本章主要讲述了我们为什么学习Python以及Python的现状和未来、同时完成了本章的核心要点Python的安装与入门案例。
46 0
Python从入门到精通之安装与快速入门
|
4月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
64 0