【Flask】Python-Flask快速入门Helloworld

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【Flask】Python-Flask快速入门Helloworld

一、Flask-HelloWorld项目结构

在这里插入图片描述

二、基本操作

1. app.py

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/<int:userId>")
def getUserById(userId):
    return str(userId)

@app.route("/testR/<int:userId>")
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

这里面用来写一些关于数据库的连接配置

# -*-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

统一信息返回处理

# -*-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的简单入门就到此结束了,喜欢的小伙伴可以点个关注,后续会不定时更新~
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
1月前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
73 2
|
1月前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
48 2
|
1月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
34 1
|
26天前
|
JSON API 数据格式
使用Python和Flask构建简单的Web API
使用Python和Flask构建简单的Web API
|
2月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
【10月更文挑战第12天】本文介绍了如何使用Python和Flask构建一个简单的RESTful API。首先概述了API的重要性及RESTful API的基本概念,接着详细讲解了Flask框架的特性和安装方法。通过创建一个基本的Flask应用,定义了处理“图书”资源的GET、POST、PUT和DELETE方法的路由,展示了如何处理请求和响应,以及如何进行错误处理。最后,提供了运行和测试API的方法,总结了Flask在构建RESTful API方面的优势。
38 1
|
2月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
【10月更文挑战第10天】本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web应用框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了代码示例。通过这些步骤,读者可以快速掌握使用Flask构建RESTful API的方法。
55 1
|
2月前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
2月前
|
数据库 开发者 Python
使用Python和Flask构建Web应用
【10月更文挑战第2天】使用Python和Flask构建Web应用
29 2
|
2月前
|
API 数据库 开发者
Flask:Python的轻量级Web框架
Flask:Python的轻量级Web框架
45 2