大家好,今天给各位分享小应用网站源码分享的一些知识,其中也会对应用小软件进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
准备申请的指南
应用程序设计可能具有挑战性,尤其是当您不熟悉框架时。对于Flask应用程序,我们可以使用蓝图将Python应用程序设计为可重用的组件/模块。
我们将从了解我们的烧瓶应用程序的结构开始。
.\n├──govt_structure/\n│└──mainapp/\n│├──constituencies/\n││├──__init__.py\n││├──constituencies.py\n││└──route.py\n│├──counties/\n││├──__init__.py\n││├──counties.py\n││└──route.py\n│├──database/\n││├──__init__.py\n││└──db.py\n│└──__init__.py\n├──app.py\n├──appentry.sh\n├──Pipfile\n├──Pipfile.locl\n├──.gitignore\n└──Dockerfile
让我们花一些时间来了解结构。应用程序文件夹名称是govt_structure,其中包含我们的代码所在的mainapp内容以及与我们的代码通信的入口文件。第一个入口文件是app.py,它将调用mainapp包。每个具有__init__.py文件的文件夹在python中都被解释为一个包。app.py是我们的入口文件,appentry.sh脚本将使用它来启动gunicornWSGIHTTP服务器。
在mainapp中,我们将使用__init__文件将我们的模块注册到一个蓝图。我们的应用程序中有三个模块:县、选区和数据库。
由于这三个模块是作为包启动的(存在__init__),因此它们可以轻松地相互引用或从我们应用程序中的任何位置进行寻址。
应用程序将通过在本地环境中和容器化时运行appentry.sh脚本来启动。
现在我们已经有了一个结构,让我们通过准备python环境并创建所有文件来开始工作。
Installpythonenv\n$python3-mpipinstallpipenv\n$python3-mpipenvinstallflaskgunicornpymongo\ncreateinitfileformainapptomakeitapackage\n$touchmainapp/__init__.py\ncreateascripttoruntheapplicationandmakeitexecutable\n$touchappentry.sh\n$chmod+xappentry.sh\ncreateroutesforeachmodule\n$touchmainapp/counties/route.py\n$touchmainapp/constituencies/route.py\nfunctiontoinitiatetheapplication\ndefcreate_app()\napp=Flask(__name__)\n\nreturnapp
接下来是在mainapp/counties/__init__.py中的县包初始化。
fromflaskimportBlueprint39;counties&importcountiesmoduleroutes\nfrommainapp.countiesimportroute
在mainapp/counties/counties.py创建counties类和counties模式(这将有助于序列化和反序列化)。
frommainapp.databaseimportDB\nclassCounties(object):\nmethodtoinsertcountyobjectintothedatabaseincounties\n39;counties&turngivendataintojson\ndefjson(self):\nreturn{\n&39;:self.name,\n&39;:self.population,\n&39;:self.governor,\n&39;:self.countyhq\n}\n39;counties&usingonlinemongodbdatabase\n34;dsfsfsd&34;govt&insertdataintogivencollection\nDB.DATABASE[collection].insert_one(data)\n\ndeffind_all(collection):\ninsertonecountryintodb\n@counties_bp.route(&34;,methods=[&39;])\ndefaddCounty():\nname=request.json[&39;]\npopulation=request.json[&39;]\ngovernor=request.json[&39;]\ncountyhq=request.json[&39;]\n\ncounty_data={\n&34;:name,\n&34;:population,\n&34;:governor,\n&34;:countyhq\n}\ncountiesSchema=CountiesSchema()\n34;newcountyid&39;/getAll&34;counties&39;/sayhello&39;greetings&34;Hellothere&functiontoinitiatetheapplication\ndefcreate_app():\n\napp=Flask(__name__)\n\ncallthebelowmethodtoregistermodules\nregister_modules(app)\n\nreturnappyoucanregisterasmanymodulesyouhave\ndefregister_modules(app):\nfrommainapp.countiesimportcounties_bp\napp.register_blueprint(counties_bp)
应用入口文件是app.py,它会调用mainapp包方法create_app来运行应用。
frommainappimportcreate_appapp=create_app()\ncontainer\nif__name__==&34;:\napp.run(host=&39;)
我们需要一个wsgi服务器来运行这个python应用程序。为此,我们将使用gunicorn。脚本appentry.sh将用于启动这个wsgi服务器。脚本引用app.py中的app(文件)和可调用app。
该脚本将在端口8000中公开应用程序,并将有两个工作人员和两个线程。这些可以根据您的硬件能力进行更改。
runtheapplicationbycallingappentry.shscript\n$./appentry
通过调用不需要数据库连接的/sayhelloAPI路由来测试应用程序。
关注七爪网,获取更多APP/小程序/网站源码资源!
关于小应用网站源码分享到此分享完毕,希望能帮助到您。