后端开发入门实战

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/t6_17/article/details/80902169

后端入门实战Flask+Mysql

python2.7+flask2.0+pymysql

Flask项目结构

系统服务端开发仓库结构

Appserver/
├── app
│   ├── static/      # 静态资源文件夹
│   ├── templates/   # 模板文件夹
│   ├── __init__.py  # 初始化文件
│   ├── user_sign_up.py # blueprint
│   ├── user_login.py # blueprint
│   ├── models.py # 数据库关系模型
│   └── view.py # 调用blueprint
├── config.py    # 配置文件
├── createdb.py # 创建数据库
├── run.py # 主程序文件
├── requirements     # 需求文件
└── README.md

MySQL数据库配置

在flask2.0中不再支持MySQLdb,因此选用pymysql

安装MySQL数据库驱动:

pip install mysql-python 

安装SQLAlchemy:

pip install flask-sqlalchemy 

在Python中,最有名的ORM框架是SQLAlchemy,可以把关系数据库的表结构映射到对象上。

config.py配置文件:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:12345678@localhost:3306/mydb'
# 'mysql+pymysql://用户名称:密码@localhost:端口/数据库名称'
SQLALCHEMY_TRACK_MODIFICATIONS = True

app/models.py建立数据库模型:

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))

app/__init__.py初始化数据库db对象:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app, use_native_unicode='utf8')

createdb.py创建数据库:

from app.models import *
if __name__ == '__main__':
    db.create_all()

数据库创建成功。

使用Blueprint进行多模块应用的开发

在使用flask进行一个项目编写的时候,可能会有许多个模块,比如上面目录的注册、登录等模块,如果把所有的这些模块都放在一个views.py文件之中,那么最后views.py文件必然臃肿不堪,并且极难维护,因此flask中便有了blueprint的概念,可以分别定义模块的视图、模板、视图等等,我们可以使用blueprint进行不同模块的编写,不同模块之间有着不同的静态文件、模板文件、view文件,十分方便代码的维护和管理。

上面的blueprint将注册与登录模块分开,当然你也可以另外建文件夹如下面这样

Appserver/
├── app
│   ├── static/      # 静态资源文件夹
│   ├── templates/   # 模板文件夹
│   ├── __init__.py  # 初始化文件
│   ├── user
│   |    ├── user_sign_up.py # blueprint
│   |    ├── user_login.py # blueprint
│   ├── models.py # 数据库关系模型
│   └── view.py # 调用blueprint
├── config.py    # 配置文件
├── createdb.py # 创建数据库
├── run.py # 主程序文件
├── requirements     # 需求文件
└── README.md

app/__init__.py声明blueprint对象:

from flask import Blueprint

user_login = Blueprint('user_login', __name__)

from . import user_login

在app/views.py或者run.py注册:

from user_login import user_login
app.register_blueprint(user_login)

app.register_blueprint在这里进行了Blueprint对象的注册和路由,还有更多用法参考下面:
使用蓝图的模块化应用

解决跨域请求

在app/__init__.py加上CORS

from flask_cors import CORS

app = Flask(__name__)
CORS(app, supports_credentials=True)
展开阅读全文

没有更多推荐了,返回首页