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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户测试</title>
</head>
<body>

<ul>{% for k,v in cookies.items() %}
    <li>{{ k }}:{{ v }}</li>
{% endfor %}
</ul>
<p>
    {{ base_url }}
</p>
</body>
</html>

模板页面显示的是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

启动后进入做的页面可以看到
在这里插入图片描述

控制台会显示一些信息

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amoor123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值