文章目录
一、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
点击下方链接
可以看到hellworld成功显示了!
继续在网址后追加/testDb 测试和数据库的连接(完整url:http://127.0.0.1:5454/testDb)
可以看到数据库信息正常返回了!
而且之前设定的统一结果返回中的成功状态码200也成功加入其中了!
好啦!关于flask的简单入门就到此结束了,喜欢的小伙伴可以点个关注,后续会不定时更新~
Original: https://blog.csdn.net/weixin_51545953/article/details/121751032
Author: WSKH0929
Title: 【Flask】Python-Flask快速入门Helloworld
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/746331/
转载文章受原作者版权保护。转载请注明原作者出处!