栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-20-Flask-01- 基本运行框架及配置文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-20-Flask-01- 基本运行框架及配置文件

这里搭建一个基本的Flask框架的项目结构
项目地址:https://codechina.csdn.net/sabian2/myflask.git

git clone https://codechina.csdn.net/sabian2/myflask.git

选择好的10月20日的带初始框架的最后一个版本

项目结构解析

myflask是项目目录名,需要把它mark 为source root,下面的根据目录的缩进看层次。

manage.py

项目的主运行文件,只要在目录下的命令行使用

python manage.py

即可启动项目

.gitignore

git版本控制忽略的文件

requirements.txt

项目的依赖包名称

settings.py

运行的设置文件

mainapp

一个应用,相当于拆分的网页功能

static

静态文件目录

templates

模 板文件目录

user.html

一个用户的模板文件

views

视图文件目录

user_view.py

用户视图类

models

模型文件

user_model.py

用户模型类

utils

一个通用的工具包

文件详情 settings.py
class Dev():
    ENVIRONMENT='development'
    DEBUG=True
    SQLALCHEMY_DATAbase_URI = 'mysql+pymysql://root:sa123456@localhost:3306/db1?charset=utf8'
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_ECHO = True

SQLALCHEMY_DATAbase_URI:数据库的资源定位标识
格式是
数据库名称+驱动://用户名:密码@地址:端口/数据集名称?附加参数
SQLALCHEMY_TRACK_MODIFICATIONS :数据库是可扩展的
SQLALCHEMY_COMMIT_ON_TEARDOWN :回收资源时自动提交数据
SQLALCHEMY_ECHO :控制台显示数据库语句

mianapp/__ init__.py
from flask import Flask
import settings
app=Flask(__name__)
app.config.from_object(settings.Dev)


一般都以这种方式创建app,
app.config.from_object(settings.Dev)
从settings.py文件中导入设置

mainapp/templates/user.html



    
    用户测试



    {% for k,v in cookies.items() %}
  • {{ k }}:{{ v }}
  • {% endfor %}

{{ base_url }}

模板页面显示的是Jinja2语法的格式
pycharm里在如下位置调整自己项目的模板语法,输入时会有提示

mainapp/views/user_view.py

用户视图

from flask import Blueprint
from flask import request,render_template
from models.user_model import UserModel
from models import db
blue=Blueprint('userBlue',__name__,template_folder='templates')


@blue.route('/login',methods=['GET','POST'])
def login():
    data={
        'cookies':request.cookies,
        'base_url':request.base_url
    }
    db.drop_all()
    db.create_all()
    user=UserModel()
    user.name='xx'
    user.phone='12345678910'
    user.auth_key='123456'
    db.session.add(user)
    return render_template('user.html',**data)

这里定义了一个蓝图,通过蓝图配置路径,内部做了一个数据库的初始化,并添加了数据
最后渲染了模板

models/init__.py
# 在这里创建db对象,然后在模型类中被导入

from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy()
models/user_model.py
from models import db


class UserModel(db.Model):
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name=db.Column(db.String(30),nullable=False)
    auth_key = db.Column(db.String(100),nullable=False)
    phone=db.Column(db.String(11),unique=True)

这里建立一个模型,和数据库的表是对应的

manage.py
from mainapp import app
from mainapp.views import user_view
# from flask_script import Manager


from models import db



if __name__ == '__main__':
    # 注册蓝图路由
    app.register_blueprint(user_view.blue,url_prefix='/user')
    db.init_app(app)

    # manager=Manager(app)
    # manager.run()
    app.run(host='localhost',port=5000,debug=True)

上面的是导入的包
下面的是运行程序的步骤
app.register_blueprint注册蓝图路由,并添加前缀
db.init_app(app)启动数据库
app.run(host=‘localhost’,port=5000,debug=True),以括号内的配置启动
因为flask高版本缺少一部分文件,所以flask-script插件的方法已经用不了了。

运行程序

直接运行manage.py文件即可,或在命令行输入

python manage.py

启动后进入做的页面可以看到

控制台会显示一些信息


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339438.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号