{"data":{"markdownRemark":{"html":"<h2>使用脚手架生成vue项目</h2>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">vue-init webpack frontend</code></pre></div>\n<p>修改django项目静态文件<strong>setting.py</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">TEMPLATES <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">{</span>\n        <span class=\"token comment\"># 'DIRS': [os.path.join(BASE_DIR, 'templates')]</span>\n        <span class=\"token string\">'DIRS'</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'frontend/dist'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span>\n<span class=\"token comment\"># 添加静态文件</span>\nSTATICFILES_DIRS <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    os<span class=\"token punctuation\">.</span>path<span class=\"token punctuation\">.</span>join<span class=\"token punctuation\">(</span>BASE_DIR<span class=\"token punctuation\">,</span> <span class=\"token string\">\"frontend/dist/static\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span></code></pre></div>\n<p>添加前端页面修改django项目<strong>urls.py</strong>文件</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> django<span class=\"token punctuation\">.</span>views<span class=\"token punctuation\">.</span>generic <span class=\"token keyword\">import</span> TemplateView\n\n<span class=\"token keyword\">from</span> django<span class=\"token punctuation\">.</span>urls <span class=\"token keyword\">import</span> path<span class=\"token punctuation\">,</span>include\n\n<span class=\"token keyword\">from</span> django<span class=\"token punctuation\">.</span>conf<span class=\"token punctuation\">.</span>urls <span class=\"token keyword\">import</span>  include<span class=\"token punctuation\">,</span> url\n\nurlpatterns <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    url<span class=\"token punctuation\">(</span>r<span class=\"token string\">'^admin/'</span><span class=\"token punctuation\">,</span> admin<span class=\"token punctuation\">.</span>site<span class=\"token punctuation\">.</span>urls<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    url<span class=\"token punctuation\">(</span>r<span class=\"token string\">'^api/'</span><span class=\"token punctuation\">,</span> include<span class=\"token punctuation\">(</span>myapp<span class=\"token punctuation\">.</span>urls<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    url<span class=\"token punctuation\">(</span>r<span class=\"token string\">'^$'</span><span class=\"token punctuation\">,</span> TemplateView<span class=\"token punctuation\">.</span>as_view<span class=\"token punctuation\">(</span>template_name<span class=\"token operator\">=</span><span class=\"token string\">\"index.html\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span></code></pre></div>\n<h2>解决跨域</h2>\n<p>Django的第三方包<code class=\"language-text\">django-cors-headers</code>来解决跨域问题：</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"> pip install django<span class=\"token operator\">-</span>cors<span class=\"token operator\">-</span>headers</code></pre></div>\n<p><strong>settings.py</strong> 修改：</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># 注意中间件的添加顺序</span>\nMIDDLEWARE <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token string\">'django.middleware.security.SecurityMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.contrib.sessions.middleware.SessionMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'corsheaders.middleware.CorsMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.middleware.common.CommonMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.middleware.csrf.CsrfViewMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.contrib.auth.middleware.AuthenticationMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.contrib.messages.middleware.MessageMiddleware'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'django.middleware.clickjacking.XFrameOptionsMiddleware'</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span>\n\nCORS_ORIGIN_ALLOW_ALL <span class=\"token operator\">=</span> <span class=\"token boolean\">True</span></code></pre></div>","frontmatter":{"title":"使用vue框架进行前端渲染"}}},"pageContext":{"slug":"/build/repo/Django/3、使用vue进行前端渲染/"}}