【Flask】Python-Flask快速入门Helloworld

文章目录

一、Flask-HelloWorld项目结构

【Flask】Python-Flask快速入门Helloworld

; 二、基本操作

1. app.py

import numpy as np
from flask import *
from util import *
import json
from flask_sqlalchemy import SQLAlchemy

import pymysql
pymysql.install_as_MySQLdb()
from util.ReslutReturn import *

app = Flask(__name__,static_folder='static',static_url_path='/static',template_folder='templates')

class DefaultConfig(object):
"""
    默认配置
"""
    KEY = 'wskh45700037'

app.config.from_pyfile('setting.py')

user_bp = Blueprint('user',__name__)

app.register_blueprint(user_bp,url_prefix="/user")

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('/')

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)

    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__':

    app.run(port=5454)

2. setting.py

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


KEY = "wskh66666666666666666"

SQLALCHEMY_DATABASE_URI =  "mysql://%s:%s@%s/%s" % ('用户名', '密码', 'ip', '数据库名称')

SQLALCHEMY_COMMIT_ON_TEARDOWN = True

3. ReslutReturn.py

统一信息返回处理


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

【Flask】Python-Flask快速入门Helloworld
点击下方链接
【Flask】Python-Flask快速入门Helloworld
【Flask】Python-Flask快速入门Helloworld
可以看到hellworld成功显示了!
继续在网址后追加/testDb 测试和数据库的连接(完整url:http://127.0.0.1:5454/testDb)
【Flask】Python-Flask快速入门Helloworld
可以看到数据库信息正常返回了!
而且之前设定的统一结果返回中的成功状态码200也成功加入其中了!
【Flask】Python-Flask快速入门Helloworld
好啦!关于flask的简单入门就到此结束了,喜欢的小伙伴可以点个关注,后续会不定时更新~

Original: https://blog.csdn.net/weixin_51545953/article/details/121751032
Author: WSKH0929
Title: 【Flask】Python-Flask快速入门Helloworld

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/746331/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球