暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python使用虚拟环境venv创建Flask(MVC)项目

络鸣泪 笛归 2022-03-15
813

在使用环境venv时,需要使用python3创建一个虚拟环境(Windows):

    python -m venv venv
    # 激活虚拟环境
    - CMD
    ./venv/Scripts/activate
    - PowerShell
    venv/Scripts/Activate.ps1


    注意:💔PowerShell脚本的时候突然遇到这个问题

      无法加载文件 :因为在此系统上禁止运行脚本。有关详细信息,请参阅 。。。


      + CategoryInfo : SecurityError: (:) [],ParentContainsErrorRecordException


      + FullyQualifiedErrorId : UnauthorizedAccess


      打开PowerShell 然后输入 get-executionpolicy:

        Restricted

        以管理员身份打开PowerShell 输入 set-executionpolicy remotesigned

          选择Y 然后电脑上就可以执行自己编写的脚本文件
          再次输入 get-executionpolicy => RemoteSigned



          解决这个小插曲之后,使用PowerShell进入python的虚拟环境



          开始pip安装flask、flask-script、flask-migrate、flask-blueprint、flask_session,在安装之前,需要将pip源更换为阿里源;(windows系统):

            (1) 打开计算机,在地址栏输入%HOMEPATH%,回车,新建文件夹,命名为pip
            (2) 在pip下新建pip.ini,输入以下内容:
            - - - - - - - - - - - - - - - - - - - - - - - - - - -
            [global]


            timeout=6000
            index-url = http://mirrors.aliyun.com/pypi/simple


            trusted-host = mirrors.aliyun.com
            - - - - - - - - - - - - - - - - - - - - - - - - - - -


            pip.ini


            pip安装的包
              flask
              # 使用flask-script启动项目
              flask-script==2.0.5
              # flask_migrate使用MigrateCommand
              flask_migrate==2.7.0
              # flask-blueprint蓝图
              flask-blueprint
              # session
              flask-session


              requirements.txt

              Flask-App-MVC


              文件树状(MVC)结构;B站中观看视频学习:
                C:.
                ├─venv
                │ ...
                ├─static
                │ ...
                ├─template
                │ ...
                manager.py
                └─App
                │ __init__.py
                settings.py
                ext.py
                models.py
                └─views
                │ __init__.py
                first_blue.py
                │ ...




                启动时,可以使用带命令启动:
                  # 迁移数据库 init|migrate|upgrade|downgrade
                  python manager.py db {init|migrate|upgrade|downgrade}
                  # 带debug启动
                  python manager.py runserver -r -d
                  # 需要更多命令使用--help查看
                  python manager.py {runserver| } --help


                  manager.py文件:
                    from flask_script import Manager
                    from flask_migrate import MigrateCommand


                    from App import create_app


                    app = create_app()


                    manager = Manager(app)
                    manager.add_command('db', MigrateCommand)




                    if __name__ == '__main__':
                    manager.run()


                    App.__init__py文件:

                      from flask import Flask


                      from App.views import init_views
                      from App.ext import init_ext




                      def create_app():
                      app = Flask(__name__)
                      # 加载扩展
                      init_ext(app=app)
                      # 加载视图
                      init_views(app=app)

                      return app



                      ext.py文件:
                        from flask_sqlalchemy import SQLAlchemy
                        from flask_migrate import Migrate
                        from flask_session import Session


                        db = SQLAlchemy()




                        def init_ext(app):
                        db.init_app(app=app)
                        Migrate(app=app, db=db)
                        Session(app=app)




                        views使用蓝图注册(views.__init__.py):

                          from .first_blue import first




                          def init_views(app):
                          app.register_blueprint(first)



                          具体内容需要自己发挥,flask插件丰富,利用插件,能快速开发flask项目;例如,在使用html时,flask-bootstrap可以快速渲染页面;如果不能满足你的要求,你可以重写样式覆盖,但是不要修改源样式,一定是重写样式。



                          flask官方文档能帮助你快速搭建,看不懂文档可以利用浏览器自带的翻译功能;B站上也有许多非常优秀的项目讲解。
                          文章转载自络鸣泪 笛归,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论