当前位置: 首页 > 网络应用技术

如何使用Django(Vue+Django)通过VUE

时间:2023-03-07 17:17:50 网络应用技术

  简介:许多朋友问有关Vue和Django如何通过该价值的问题。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  创建Django2项目

  经过

  `django-addmin startproject mysite'

  命令创建

  创建后端服务应用程序

  在CD Mysite目录之后,Django-Admin StartApp后端

  创建一个VUE项目

  vue创建前端

  当前版本:Django:2.1.7;Python:3.6.3;Vue-CLI:3.5.1;

  类别和vue接口对接

  首先是取出所有类别的所有内容

  由于前端vue显示类别已分类

  第一级,两个级别和三个级别如下

  因此,我们需要取出所有三个内容

  但首先,您需要拿出第一级,然后镶嵌第二级,然后在第三季度插入第二级,就像上面商品中显示的类别的内容一样。

  我们仍然需要编写序列化器

  这是第一个级别的第二级第二级第二级镶嵌第三级 -

  但是这里有一个问题,不要犯错。这三个类别的立场并不是错误的。

  因为第一级正在调用第二级,所以必须先写第二级

  因此,第二级必须处于相同级别的相同级别。

  然后是视图

  在过滤器中添加类别_type = 1,以便您可以直接显示第一个类别,然后对第二个小类别有更分层的感觉。

  同时,我们必须处理单个信息

  因此,我们继承了Mixins.RetRieveModelMixin,这是一个显示详细信息的类

  例如,在动物园中显示某个动物

  /zoos/id

  这样的URL

  同样,我们只能直接配置类别的URL。

  您不需要考虑以后的ID是否需要配置URL。您不需要考虑它,因为我们继承了视图类

  他帮助我们解决了这些问题

  您可以以这种方式看到它来处理我们的后端

  但是,在处理前端对接时,您会发现它无法显示

  因为有一个十字架问题

  这个问题可以单独解决前后的后端,因此请谈谈后端方法

  只需修改服务方

  在GitHub上搜索Django-Cors-neaders以查找此信息

  如何以相同的方式使用它

  安装

  PIP安装django-cors头

  然后在Settins中的intasted_apps配置和设置中的中间件配置

  请注意此处的中间软件配置

  'corsheaders.middleware.corsmiddleware',

  'django.middleware.common.commonmiddleware',

  这两个必须放在

  'django.middleware.csrf.csrfviewmiddleware',,

  否则,这将在此前面有错误

  也配置

  cors_origin_allow_all = true

  允许交叉域访问其默认值是错误的

  这可以正常显示在前端

  为什么发生交叉域访问

  因为在VUE中的API配置中,我们可以修改所有主机。一些在线数据。我们调试本地数据的一部分,因此我们需要重新确定本地主机

  修改一些主机链接

  这导致使用在线主机端口的交叉域本身,但是数据中的某些数据是本地主机端口导致交叉域访问

  因为我想改变一些以前的需求,所以主管要求我学习Vue。花了很长时间才进入门,我不得不更改成熟的项目。这个困难仍然很困难。

  那些熟悉网站构建的人应该知道Vue是一个出色的前端框架,而Django是Python语言系统下的后端框架。尽管他们俩都可以编写一个完整的网站,但它们具有自己的焦点。速度很快,但是模板引擎附带的速度相对较弱,VUE是由数据驱动和组成的意识形态构建的。它是渲染页面中的第一个类。因此,随着Python的开发,可以开发网站。

  不同的框架如何组合?这导致了前端和后端分离的想法。后端仅提供接口,API和前端来调用这些接口以获取数据,然后将其渲染到HTML模板模板。

  在开发不同的框架时,最大的问题是交叉域。由于不同的框架,它们启用的端口号不同,即不同的数据源。由于安全性,无法直接访问它们。它是Django配置文件中的跨域许可证。使用Django的第三方软件包Django-Cors-neaders解决跨域问题

  在这种情况下,我们可以使通过VUE启动方法进行调试更加方便

  最终如何集成在一起?我们知道Django是通过指定模板和静态文件的路径来渲染的,因此我们需要打包VUE文件以生成index homepage和static文件,以便我们可以在django的默认文件夹中分别分别分开,或指定这两个文件。再次路径。

  使用Django 2.2。

  一般而言,使用指令NPM Run构建以获取包装的包装,然后将其交给NGINX进行路由转换(配置的位置 /静态)。需要的是配置Django上的可访问index.html路径。

  但是(?),我想在本地测试,也就是说,没有nginx,并且debug = true环境尚未测试。结果,没有欢迎页面进入主页。打开开发工具并表明这就是它的样子:

  解决方案:只需在installed_apps中注册VUE Engineering文件夹即可。

  如果您不注册该应用程序,那么即使您编写文件夹,Django也不会扫描(根目录除外):

  如上所示,我在staticfiles_dir包装的Blogfro(即VUE文件目录)之后写了静态文件夹,但是输入主页时仍然是白屏幕。

  白屏幕的路径表示模板模板是正常的,但是仍然无法加载静态文件。此需要注册的应用程序。注册后,您可以扫描静态文件。

  注册后,已成功显示主页:

  当没有加载该应用程序时,我发现CSS和JS文件放在已注册应用程序(BackND)的静态文件夹中,可以正常显示。此验证静态文件夹的扫描是否需要注册的应用程序。

  以我的项目为例:

  在调试模式下,您只需要static_url和staticfiles_dir。

  根据Django文档,static_url是路径的地图。服务器将考虑将其匹配的路径,然后输入staticfiles_dir指定的目录以查找,并始终尝试返回匹配的第一个结果匹配。

  在生产模式(封闭的调试)中,对静态文件的引用将失败。换句话说,对于性能考虑,我们不将Django服务器用于静态资源请求。我们经常使用其他反向服务器进行发送。

  对于此考虑,Django使用CollectStatic指令将所有staticfiles_dir下的所有文件打包到static_root.dre.ter之后,您只需要配置此静态文件夹即可应用此静态文件夹。

  之后,您可以直接开发Blogfro。开发完成后,使用NPM Run Build,然后直接打开DJANGO服务器进行测试。包装在线时,将内容复制到static_root下方,然后将内容复制到python manage.py collection.plectionstatic(主要是收集admin)资源。

  实际上,问题并未完全解决,但这是由VUE + Django引起的。

  Django使用其自己的静态路径索引,这与VUE有必要冲突。要处理它,必须调试它。

  使用django和vue意味着您要将前端和后端分开,因此开发过程本身是隔离的。双方的交集应为最后一个部署(VUE包装,Django打开生产模式,并且反效力师打开(例如nginx)。这次,静态文件夹属于反服务器管理,不会出现此类问题。

  由于我只有一个人(太痛苦),因此对Debug Vue和Django的需求同时引起了上述问题。

  结论:以上是首席CTO注释为Django的每个人编写的VUE的所有内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关Vue与Django有何关系的更多信息,请不要忘记在此站点上找到它。