当前位置: 首页 > 后端技术 > Python

Django+React全栈开发:MTV初试

时间:2023-03-26 01:16:10 Python

环境配置首先说一下我的环境:Manjaro19.02Python3.8.1Django3.0.4DjangoRESTframework3.11.0Node13.9.0yarn1.22.0基本上我都会一直用最新版本(我就是爱折腾),我会在博客上持续更新。首先新建一个工程文件夹mkdirreact_drf。为了将其与本地环境隔离,我们新建一个虚拟环境://Installvirtualenv。如果是有两个Python版本的Linux发行版,记得使用python3pipinstallvirtualenvcdreact_drf//新建虚拟环境virtualenv--no-site-packagesvenv//激活虚拟环境sourcevenv/bin/activate//退出并退出使用下面的deactivate如果你用的是Windows系统,命令会有点不同,如果你觉得每次输入命令很麻烦,而且电脑性能不好,可以安装PyCharm,这个IDE可以拯救你很多工作。直接用PyCharm新建一个项目,设置好使用虚拟环境。现在我们安装Django并创建一个项目(注意我们是在虚拟环境中操作):pipinstalldjangodjango-adminstartprojectbackend现在我们会发现项目文件夹下多了一个backend文件夹,现在创建第一个Djangoapp。cdbackendpythonmanage.pystartapparticle现在你应该看到这样的目录结构:backend├──article│├──admin.py│├──apps.py│├──__init__.py│├──models。py│├──tests.py│└──views.py├──后端│├──__init__.py│├──settings.py│├──urls.py│└──wsgi.py├──db.sqlite3└──编辑backend/backend/settings.py文件中的manage.py,找到INSTALLED_APPS列表,添加'article.apps.ArticleConfig',这个操作会将我们的新应用注册到Django项目中。使用命令pythonmanage.pyrunserver,打开浏览器,在地址栏输入http://127.0.0.1:8000,可以看到Django标志的小火箭图标,说明环境搭建成功。模型层现在开始编写我们的第一个模型,进入article目录,打开并修改models.py文件:fromdjango.dbimportmodelsclassArticle(models.Model):title=models.CharField(max_length=50)body=models.TextField()我们定义了一个名为Article的类,它有两个属性。title表示标题,使用CharField字段,设置最大长度为50,body为文本,使用TextField字段。然后我们进行数据迁移,使用命令pythonmanage.pymakemigrations文章,注意运行命令的位置,应该在外层backend文件夹中。(venv)$pythonmanage.pymakemigrationsarticleMigrationsfor'article':article/migrations/0001_initial.py-CreatemodelArticle可以看到在article文件夹下自动生成了migrations文件夹,多了一个Python文件。然后使用pythonmanage.pymigrate命令将数据模型迁移到数据库中。我们现在向数据库中添加一些数据,并使用命令pythonmanage.pymakesuperuser创建一个管理员帐户。Django为我们内置了后台管理功能:(venv)$pythonmanage.pycreatesuperuserUsername(留空使用'elliot'):testEmail地址:Password:Password(again):Thispasswordistoocommon.绕过密码验证并创建用户?[y/N]:ySuperuser创建成功。输入的密码在Linux/Unix系统下是不会显示的,请不要怕,不是你的键盘坏了。然后修改article/admin.py:fromdjango.contribimportadminfromarticle.modelsimportArticleadmin.site.register(Article)然后pythonmanage.pyrunserver运行Django,输入http://127.0.0.1:8000/admin:Token是我预注册的其他app,Users和Groups都是Django提供的。我们先点击文章,尝试选择添加文章来创建几篇文章。视图层接下来查看article/views.py:fromdjango.shortcutsimportrenderfromarticle.modelsimportArticledefarticle_list(request):articles=Article.objects.all()context={'articles':articles}returnrender(request,'article/article_list.html',context)还记得我们浏览网页时,浏览器的地址栏里会有一个url吗?Django根据用户请求的URL决定使用哪个视图,所以编辑backend/urls.py:#backend这里是内部后端文件夹fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path('admin/',admin.site.urls),path('',include('article.urls')),]在这里选择包含article的url,所以新建一个article/urls.py文件:fromdjango.urlsimportpathfromarticleimportviewsurlpatterns=[path('article_list',views.article_list),]templatelayer现在我们有了数据模型,以及决定视图渲染的视图函数,以便将数据呈现给其他人看其中,我们还需要一个html文件。在article文件夹下新建文件夹templates,然后在templates新建article文件夹,在里面新建article_list.html(记得view函数的最后一行)。{%forarticleinarticles%}

{{article.title}}

{{article.body}}

{%endfor%}现在运行Django,打开http://127.0.0.1:8000/article_list/,你会看到一个列出所有文章标题和内容的网页。好了,至此你已经有了一个简单的可以后台管理的博客页面,本系列教程到此结束,撒花结束。开个玩笑,哈哈,这只是对Django的MTV架构模型的简单体验,后续章节会深入讲解,我们将使用DjangoRESTframework将我们的应用转化为RESTfulAPI。练习如果想加深对Django的理解,请到官网按照官方教程再敲一遍代码。一般来说,官方文档应该是我们需要经常阅读的最好的资料之一,但没有必要从头到尾阅读整个文档并死记硬背。我们不需要参加考试。如果在实践中遇到问题,再去查看官方文档。我认为这样更有效。扫描二维码关注龚自政宅家日常,第一时间查看最新推送: