{"id":49920,"date":"2023-11-26T02:32:09","date_gmt":"2023-05-14T23:50:37","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/"},"modified":"2024-05-04T10:48:03","modified_gmt":"2024-05-04T02:48:03","slug":"%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/","title":{"rendered":"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd"},"content":{"rendered":"<h1>\u5f00\u573a\u767d<\/h1>\n<p>\u6211\u4f1a\u8bb0\u5f55\u4e0b\u81ea\u5df1\u72ec\u5b66\u7f16\u5199\u513f\u7ae5\u6210\u957f\u5e94\u7528\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u3002\u5982\u679c\u6709\u4efb\u4f55\u9519\u8bef\u6216\u758f\u6f0f\u4e4b\u5904\uff0c\u8bf7\u60a8\u8054\u7cfb\u6211\u3002<br \/>\n\u2460 \u5728\u8fdb\u5165Django\u7684\u6b22\u8fce\u9875\u9762\u4e4b\u524d<br \/>\n\u2461 \u5728\u901a\u8fc7Nginx\u8fdb\u5165Django\u7684\u6b22\u8fce\u9875\u9762\u4e4b\u524d<br \/>\n\u2462 \u521b\u5efa\u81ea\u5b9a\u4e49\u7528\u6237\u5e76\u8fdb\u5165admin<br \/>\n\u2463 \u5c1d\u8bd5\u767b\u5f55\u548c\u6ce8\u9500 &lt;&#8211; \u8fd9\u90e8\u5206\u662f<br \/>\n\u2464 \u521b\u5efa\u7528\u6237\u6ce8\u518c\uff08\u767b\u5f55\uff09\u529f\u80fd<br \/>\n\u2465 \u4e3a\u6bcf\u4e2a\u7528\u6237\u6dfb\u52a0\u6570\u636e\u6ce8\u518c\u529f\u80fd &#8211; \u521b\u5efa\u3001\u8bfb\u53d6\u3001\u66f4\u65b0<br \/>\n\u2466 \u4e3a\u6bcf\u4e2a\u7528\u6237\u6dfb\u52a0\u6570\u636e\u6ce8\u518c\u529f\u80fd &#8211; \u5220\u9664<br \/>\n\u2467 \u4e0a\u4f20\u56fe\u7247\u6587\u4ef6<br \/>\n\u2468 \u8bb0\u5f55\u8eab\u9ad8\u548c\u4f53\u91cd\uff0c\u9644\u5e26\u6279\u91cf\u5220\u9664\u529f\u80fd<br \/>\n\u2469 \u5c1d\u8bd5\u7ed8\u5236\u6210\u957f\u66f2\u7ebf\u56fe<br \/>\n\u246a \u90e8\u7f72\u5230\u751f\u4ea7\u73af\u5883\u5e76\u8fdb\u884c\u5404\u79cd\u8c03\u6574<\/p>\n<h1>\u76ee\u6807\u3002<\/h1>\n<p>\u8ba9\u6211\u4eec\u521b\u5efa\u767b\u5f55\/\u767b\u51fa\u529f\u80fd\u3002<\/p>\n<h1>\u51c6\u5907HTML<\/h1>\n<p>\u56e0\u4e3a\u6bcf\u4e2a\u5e94\u7528\u7a0b\u5e8f\u90fd\u8981\u5c06Django\u7684\u6a21\u677f\u5206\u5f00\u53d8\u5f97\u5f88\u9ebb\u70e6\uff0c<br \/>\n\u6240\u4ee5\u51b3\u5b9a\u5c06\u6a21\u677f\u653e\u5728\u4e00\u4e2a\u5730\u65b9\u3002\u6700\u7ec8\u5f62\u5f0f\u5982\u4e0b\uff08\u7ec6\u8282\u7565\u53bb\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>.\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u251c\u2500\u2500 nginx\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 conf\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 mysite_nginx.conf\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 uwsgi_params\r\n\u251c\u2500\u2500 src\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 manage.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mysite\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 settings.py\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 urls.py\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 wsgi.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 templates\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 base.html\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 users\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 login.html\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 mypage.html\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 signup.html\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 users\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 admin.py\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 apps.py\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 forms.py\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 models.py\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 urls.py\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 views.py\r\n\u251c\u2500\u2500 static\r\n\u2502\u00a0  \u2514\u2500\u2500 \u7565\r\n\u2514\u2500\u2500 web\r\n    \u251c\u2500\u2500 Dockerfile\r\n    \u2514\u2500\u2500 requirements.txt\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u544a\u8bc9\u4f60\u6a21\u677f\u7684\u4f4d\u7f6e\uff0c\u6211\u4f1a\u4fee\u6539setting.py\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">TEMPLATES<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"p\">{<\/span>\r\n        <span class=\"s\">'BACKEND'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'django.template.backends.django.DjangoTemplates'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'DIRS'<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"n\">os<\/span><span class=\"p\">.<\/span><span class=\"n\">path<\/span><span class=\"p\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">BASE_DIR<\/span><span class=\"p\">,<\/span> <span class=\"s\">'templates'<\/span><span class=\"p\">)],<\/span><span class=\"err\">\u3000<\/span><span class=\"c1\">#\u5909\u66f4\r\n<\/span>        <span class=\"s\">'APP_DIRS'<\/span><span class=\"p\">:<\/span> <span class=\"bp\">True<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'OPTIONS'<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"s\">'context_processors'<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n                <span class=\"s\">'django.template.context_processors.debug'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.template.context_processors.request'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.contrib.auth.context_processors.auth'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.contrib.messages.context_processors.messages'<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"p\">],<\/span>\r\n        <span class=\"p\">},<\/span>\r\n    <span class=\"p\">},<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<p>CSS\u4e2d\u7684bootstrap\u5f88\u65b9\u4fbf\u4e14\u4e0d\u9519\u3002<br \/>\n\u56e0\u4e3abootstrap\u6709\u9002\u7528\u4e8edjango\u7684\u7248\u672c\uff0c\u6240\u4ee5\u4f7f\u7528\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>Django==2.2.2\r\npsycopg2==2.8.4\r\nuwsgi==2.0.17\r\ndjango-bootstrap4==1.1.1 #\u8ffd\u52a0\r\n<\/code><\/pre>\n<p>\u5c06\u8bbe\u7f6e\u6dfb\u52a0\u5230APPS\uff0c\u5e76\u6dfb\u52a0\u5230\u6a21\u677f\u6307\u5b9a\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n<span class=\"n\">INSTALLED_APPS<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"s\">'django.contrib.admin'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'django.contrib.auth'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'django.contrib.contenttypes'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'django.contrib.sessions'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'django.contrib.messages'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'django.contrib.staticfiles'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'users.apps.UsersConfig'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"s\">'bootstrap4'<\/span><span class=\"p\">,<\/span> <span class=\"c1\">#\u8ffd\u52a0\r\n<\/span><span class=\"p\">]<\/span>\r\n<span class=\"p\">(<\/span><span class=\"n\">\u7565<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">TEMPLATES<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"p\">{<\/span>\r\n        <span class=\"s\">'BACKEND'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'django.template.backends.django.DjangoTemplates'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'DIRS'<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"n\">os<\/span><span class=\"p\">.<\/span><span class=\"n\">path<\/span><span class=\"p\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">BASE_DIR<\/span><span class=\"p\">,<\/span> <span class=\"s\">'templates'<\/span><span class=\"p\">)],<\/span>\r\n        <span class=\"s\">'APP_DIRS'<\/span><span class=\"p\">:<\/span> <span class=\"bp\">True<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'OPTIONS'<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"s\">'context_processors'<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n                <span class=\"s\">'django.template.context_processors.debug'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.template.context_processors.request'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.contrib.auth.context_processors.auth'<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"s\">'django.contrib.messages.context_processors.messages'<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"p\">],<\/span>\r\n            <span class=\"s\">'builtins'<\/span><span class=\"p\">:[<\/span> <span class=\"c1\">#\u8ffd\u52a0\r\n<\/span>                <span class=\"s\">'bootstrap4.templatetags.bootstrap4'<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"p\">],<\/span>\r\n        <span class=\"p\">},<\/span>\r\n    <span class=\"p\">},<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<\/code><\/pre>\n<h1>HTML\uff08\u670d\u52a1\u5668\uff09<\/h1>\n<p>\u57fa\u7840\u7684HTML\u3002\u4f7f\u7528Bootstrap\u4f7f\u5176\u5177\u5907\u54cd\u5e94\u5f0f\u5e03\u5c40\u3002<\/p>\n<pre class=\"post-pre\"><code>{% load static %}\r\n{% bootstrap_css %}\r\n{% bootstrap_javascript jquery='full' %}\r\n\r\n<span class=\"nt\">&lt;html&gt;<\/span>\r\n    <span class=\"nt\">&lt;head&gt;<\/span>\r\n        <span class=\"nt\">&lt;title&gt;<\/span>kids Growth<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n        <span class=\"nt\">&lt;link<\/span> <span class=\"na\">rel=<\/span><span class=\"s\">\"stylesheet\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% static 'css\/kidsGrowth.css' %}\"<\/span><span class=\"nt\">&gt;<\/span>\r\n        {% block extra_js %}{% endblock %}\r\n       <span class=\"nt\">&lt;\/head&gt;<\/span>\r\n    <span class=\"nt\">&lt;body&gt;<\/span>\r\n        <span class=\"c\">&lt;!-- Navigation --&gt;<\/span>\r\n        <span class=\"nt\">&lt;nav<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"navbar navbar-expand-sm navbar-dark bg-dark mt-3 mb-3\"<\/span><span class=\"nt\">&gt;<\/span>\r\n            <span class=\"nt\">&lt;button<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"navbar-toggler\"<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"button\"<\/span> <span class=\"na\">data-toggle=<\/span><span class=\"s\">\"collapse\"<\/span> <span class=\"na\">data-target=<\/span><span class=\"s\">\"#navbarNav4\"<\/span> <span class=\"na\">aria-controls=<\/span><span class=\"s\">\"navbarNav4\"<\/span> <span class=\"na\">aria-expanded=<\/span><span class=\"s\">\"false\"<\/span> <span class=\"na\">aria-label=<\/span><span class=\"s\">\"Toggle navigation\"<\/span><span class=\"nt\">&gt;<\/span>\r\n              <span class=\"nt\">&lt;span<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"sr-only\"<\/span><span class=\"nt\">&gt;<\/span>\u30e1\u30cb\u30e5\u30fc<span class=\"nt\">&lt;\/span&gt;<\/span>  \r\n              <span class=\"nt\">&lt;span<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"navbar-toggler-icon\"<\/span><span class=\"nt\">&gt;&lt;\/span&gt;<\/span>\r\n            <span class=\"nt\">&lt;\/button&gt;<\/span>\r\n            <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"navbar-brand\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\"<\/span><span class=\"nt\">&gt;<\/span>Kids Growth<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n            <span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"collapse navbar-collapse\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"navbarNav4\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                <span class=\"nt\">&lt;ul<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"navbar-nav\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                  <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                      <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\"<\/span><span class=\"nt\">&gt;<\/span>\u30e1\u30cb\u30e5\u30fc\uff11<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                  <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                      <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\"<\/span><span class=\"nt\">&gt;<\/span>\u30e1\u30cb\u30e5\u30fc\uff12<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                  <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                      <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\"<\/span><span class=\"nt\">&gt;<\/span>\u30e1\u30cb\u30e5\u30fc\uff13<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                  <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                      <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'users:mypage'%}\"<\/span><span class=\"nt\">&gt;<\/span>\u30de\u30a4\u30da\u30fc\u30b8<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                  <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  {% if user.is_authenticated %}\r\n                    <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                        <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'users:logout'%}\"<\/span><span class=\"nt\">&gt;<\/span>\u30ed\u30b0\u30a2\u30a6\u30c8<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                    <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  {% else %}\r\n                    <span class=\"nt\">&lt;li<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-item\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                        <span class=\"nt\">&lt;a<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"nav-link\"<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'users:login'%}\"<\/span><span class=\"nt\">&gt;<\/span>\u30ed\u30b0\u30a4\u30f3<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n                    <span class=\"nt\">&lt;\/li&gt;<\/span>\r\n                  {% endif %}\r\n                <span class=\"nt\">&lt;\/ul&gt;<\/span>\r\n            <span class=\"nt\">&lt;\/div&gt;<\/span>\r\n        <span class=\"nt\">&lt;\/nav&gt;<\/span>    \r\n\r\n        <span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"content container\"<\/span><span class=\"nt\">&gt;<\/span>\r\n          {% block content %}\r\n          {% endblock %}\r\n        <span class=\"nt\">&lt;\/div&gt;<\/span>\r\n    <span class=\"nt\">&lt;\/body&gt;<\/span>\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u7684\u9875\u9762\u3002\uff08\u4ec5\u663e\u793a\u7528\u6237\u540d\uff09<br \/>\n\u8bbe\u5b9a\u4e3a\u767b\u5f55\u540e\u8df3\u8f6c\u5230\u6b64\u5904\u3002<br \/>\n{{ user }}\u5c06\u5728\u7a0d\u540e\u4ece\u89c6\u56fe\u4f20\u9012\u8fc7\u6765\u3002<\/p>\n<pre class=\"post-pre\"><code>{% extends 'base.html' %}\r\n\r\n{% block content %}\r\n\r\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"col-md-12 col-lg-5\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;h2&gt;<\/span>My Page<span class=\"nt\">&lt;\/h2&gt;<\/span>\r\n\r\n    <span class=\"nt\">&lt;br&gt;<\/span>\r\n    <span class=\"nt\">&lt;br&gt;<\/span>\r\n\r\n    <span class=\"nt\">&lt;table<\/span> <span class=\"na\">class = <\/span><span class=\"s\">\"table\"<\/span><span class=\"nt\">&gt;<\/span>\r\n      <span class=\"nt\">&lt;tr&gt;<\/span>\r\n        <span class=\"nt\">&lt;td&gt;<\/span>\u30e6\u30fc\u30b6\u30fc\u540d<span class=\"nt\">&lt;\/td&gt;<\/span>\r\n        <span class=\"nt\">&lt;td&gt;<\/span>{{ user }}<span class=\"nt\">&lt;\/td&gt;<\/span>\r\n      <span class=\"nt\">&lt;\/tr&gt;<\/span>\r\n    <span class=\"nt\">&lt;\/table&gt;<\/span>\r\n\r\n\r\n<span class=\"nt\">&lt;\/div&gt;<\/span>\r\n\r\n{% endblock content %}\r\n<\/code><\/pre>\n<p>\u53ea\u9700\u4f7f\u7528\u540d\u79f0\u4e3a&#8221;form&#8221;\u7684\u8868\u5355\uff0c\u901a\u8fc7bootstrap_form\u8fdb\u884c\u7f8e\u89c2\u7684\u683c\u5f0f\u5316\u5904\u7406\u3002<br \/>\n\u6211\u4eec\u63d0\u4f9b\u4e86\u7528\u6237\u6ce8\u518c\u7684\u94fe\u63a5\uff0c\u4f46\u8be5\u529f\u80fd\u5728\u540e\u7eed\u64cd\u4f5c\u4e2d\u5b9e\u73b0\u3002<\/p>\n<pre class=\"post-pre\"><code>{% extends 'base.html' %}\r\n\r\n{% block content %}\r\n\r\n{{ form.media }}\r\n\r\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"col-md-12 col-lg-5\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;h2&gt;<\/span>Login<span class=\"nt\">&lt;\/h2&gt;<\/span>\r\n        <span class=\"nt\">&lt;form<\/span> <span class=\"na\">action=<\/span><span class=\"s\">\"\"<\/span> <span class=\"na\">method=<\/span><span class=\"s\">\"POST\"<\/span><span class=\"nt\">&gt;<\/span>\r\n                {{ form.non_field_errors }}\r\n                {% bootstrap_form form %}\r\n                <span class=\"nt\">&lt;hr&gt;<\/span>\r\n                <span class=\"nt\">&lt;button<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"submit\"<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"btn btn-success btn-lg btn-block\"<\/span> <span class=\"nt\">&gt;<\/span>\u30ed\u30b0\u30a4\u30f3<span class=\"nt\">&lt;\/button&gt;<\/span>\r\n                {% csrf_token %}\r\n        <span class=\"nt\">&lt;\/form&gt;<\/span>\r\n\r\n\r\n        <span class=\"nt\">&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'users:signup' %}\"<\/span><span class=\"nt\">&gt;<\/span>\u30e6\u30fc\u30b6\u30fc\u767b\u9332<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;\/div&gt;<\/span>\r\n{% endblock %}\r\n<\/code><\/pre>\n<h1>\u8868\u683c<\/h1>\n<p>\u901a\u8fc7\u7ee7\u627fAuthenticationForm\uff0c\u4f5c\u4e3aForm\u7684\u4e00\u90e8\u5206\uff0c<br \/>\n\u5b9e\u73b0\u767b\u5f55\u529f\u80fd\u3002\u53ea\u9700\u8fd9\u6837\u7b80\u5355\u7684\u4e00\u6b65\u3002\u975e\u5e38\u65b9\u4fbf\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">class<\/span> <span class=\"nc\">LoginForm<\/span><span class=\"p\">(<\/span><span class=\"n\">AuthenticationForm<\/span><span class=\"p\">):<\/span>\r\n\r\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">):<\/span>\r\n        <span class=\"nb\">super<\/span><span class=\"p\">().<\/span><span class=\"n\">__init__<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">)<\/span>\r\n\r\n<\/code><\/pre>\n<h1>\u89c2\u770b<\/h1>\n<p>\u7531\u4e8e\u767b\u5f55\u548c\u767b\u51fa\u6709\u5404\u81ea\u7684\u89c6\u56fe\uff0c\u6240\u4ee5\u9700\u8981\u7ee7\u627f\u5b83\u4eec\u3002<br \/>\n\u52a0\u4e0a@login_required\u88c5\u9970\u5668\u7684\u51fd\u6570\u53ea\u80fd\u5728\u767b\u5f55\u72b6\u6001\u4e0b\u8c03\u7528\u3002<br \/>\n\u6682\u65f6\u53ea\u9700\u8981\u83b7\u53d6\u5df2\u767b\u5f55\u7528\u6237\u7684\u59d3\u540d\uff0c\u7136\u540e\u5c06\u5176\u8fd4\u56de\u7ed9\u6a21\u677f\u3002<\/p>\n<p>\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0c\u5982\u679c\u5c06\u767b\u5f55\u7c7b\u8bbe\u7f6e\u4e3a&#8221;login&#8221;\uff0c\u90a3\u4e48\u540e\u9762\u521b\u5efa&#8221;Signup&#8221;\u51fd\u6570\u65f6\u53ef\u80fd\u4f1a\u4e0e\u9884\u8bbe\u7684\u547d\u540d\u51b2\u7a81\uff0c\u5bfc\u81f4\u65e0\u6cd5\u89e3\u9664\u9519\u8bef\uff0c\u547d\u540d\u7a0d\u663e\u5c34\u5c2c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">.forms<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">LoginForm<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.shortcuts<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">render<\/span><span class=\"p\">,<\/span> <span class=\"n\">redirect<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.contrib.auth.views<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">LoginView<\/span><span class=\"p\">,<\/span> <span class=\"n\">LogoutView<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.contrib.auth.decorators<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">login_required<\/span>\r\n\r\n<span class=\"c1\">#\u30ed\u30b0\u30a4\u30f3\r\n<\/span><span class=\"k\">class<\/span> <span class=\"nc\">login_mypage<\/span><span class=\"p\">(<\/span><span class=\"n\">LoginView<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">form_class<\/span> <span class=\"o\">=<\/span> <span class=\"n\">LoginForm<\/span>\r\n    <span class=\"n\">template_name<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users\/login.html'<\/span>\r\n\r\n<span class=\"c1\">#\u30ed\u30b0\u30a2\u30a6\u30c8\r\n<\/span><span class=\"k\">class<\/span> <span class=\"nc\">logout<\/span><span class=\"p\">(<\/span><span class=\"n\">LogoutView<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">template_name<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users\/login.html'<\/span>\r\n\r\n<span class=\"c1\">#\u30de\u30a4\u30da\u30fc\u30b8\r\n<\/span><span class=\"o\">@<\/span><span class=\"n\">login_required<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">mypage<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">user_name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"p\">.<\/span><span class=\"n\">user<\/span>\r\n    <span class=\"n\">params<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"s\">'user'<\/span> <span class=\"p\">:<\/span> <span class=\"n\">user_name<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">,<\/span> <span class=\"s\">'users\/mypage.html'<\/span><span class=\"p\">,<\/span><span class=\"n\">params<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u7f51\u5740<\/h1>\n<p>\u5728\u9879\u76ee\u7684urls\u6587\u4ef6\u4e2d\uff0c\u52a0\u8f7d\u6bcf\u4e2a\u5e94\u7528\u7a0b\u5e8f\u7684urls\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.contrib<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">admin<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/span><span class=\"p\">,<\/span> <span class=\"n\">include<\/span>\r\n\r\n<span class=\"n\">urlpatterns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'admin\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">admin<\/span><span class=\"p\">.<\/span><span class=\"n\">site<\/span><span class=\"p\">.<\/span><span class=\"n\">urls<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">''<\/span><span class=\"p\">,<\/span><span class=\"n\">include<\/span><span class=\"p\">(<\/span><span class=\"s\">'users.urls'<\/span><span class=\"p\">)),<\/span>\r\n<span class=\"p\">]<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u5bf9\u4e8e\u6bcf\u4e2a\u5e94\u7528\u7a0b\u5e8f\u5b9a\u4e49\u7684URL\u6a21\u5f0f\uff0c\u51b3\u5b9a\u76f8\u5e94\u7684\u89c6\u56fe\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">app_name<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users'<\/span>\r\n\r\n<span class=\"n\">urlpatterns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">''<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">mypage<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'mypage'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'mypage\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">mypage<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'mypage'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'login\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">login_mypage<\/span><span class=\"p\">.<\/span><span class=\"n\">as_view<\/span><span class=\"p\">(),<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'login'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'logout\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">logout<\/span><span class=\"p\">.<\/span><span class=\"n\">as_view<\/span><span class=\"p\">(),<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'logout'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<h1>\u8bbe\u7f6e.py<\/h1>\n<p>\u8bf7\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\u3002\u767b\u5f55\u94fe\u63a5\u5728\u8fd9\u91cc\u54e6~<br \/>\n\u767b\u5f55\u540e\u8bf7\u5148\u8bbf\u95ee\u8fd9\u91cc\u54e6~<br \/>\n\u51b3\u5b9a\u663e\u793a\u54ea\u4e2a\u9875\u9762\u5f53\u60a8\u6ce8\u9500\u767b\u5f55\u7684\u65f6\u5019\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">LOGIN_URL<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users:login'<\/span>\r\n<span class=\"n\">LOGIN_REDIRECT_URL<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users:mypage'<\/span>\r\n<span class=\"n\">LOGOUT_REDIRECT_URL<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'users:login'<\/span>\r\n<\/code><\/pre>\n<h1>\u4e0a\u6765<\/h1>\n<p>\u767b\u5f55\u9875\u9762\u548c\u767b\u5f55\u540e\u7684\u9875\u9762\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8df6913a08637a6d4682\/38-1.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2020-02-11 20.45.49.png\" \/><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5f00\u573a\u767d \u6211\u4f1a\u8bb0\u5f55\u4e0b\u81ea\u5df1\u72ec\u5b66\u7f16\u5199\u513f\u7ae5\u6210\u957f\u5e94\u7528\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u3002\u5982\u679c\u6709\u4efb\u4f55\u9519\u8bef\u6216\u758f\u6f0f\u4e4b\u5904\uff0c\u8bf7\u60a8\u8054\u7cfb\u6211\u3002 \u2460 \u5728\u8fdb\u5165Dja [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-49920","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528docker\u52a0\u4e0anginx\u3001django\u548crds\uff0c\u5b8c\u6210web\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd\" \/>\n<meta property=\"og:description\" content=\"\u5f00\u573a\u767d \u6211\u4f1a\u8bb0\u5f55\u4e0b\u81ea\u5df1\u72ec\u5b66\u7f16\u5199\u513f\u7ae5\u6210\u957f\u5e94\u7528\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u3002\u5982\u679c\u6709\u4efb\u4f55\u9519\u8bef\u6216\u758f\u6f0f\u4e4b\u5904\uff0c\u8bf7\u60a8\u8054\u7cfb\u6211\u3002 \u2460 \u5728\u8fdb\u5165Dja [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528docker\u52a0\u4e0anginx\u3001django\u548crds\uff0c\u5b8c\u6210web\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-14T23:50:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T02:48:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8df6913a08637a6d4682\/38-1.png\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/\",\"name\":\"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-14T23:50:37+00:00\",\"dateModified\":\"2024-05-04T02:48:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528docker\u52a0\u4e0anginx\u3001django\u548crds\uff0c\u5b8c\u6210web\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd","og_description":"\u5f00\u573a\u767d \u6211\u4f1a\u8bb0\u5f55\u4e0b\u81ea\u5df1\u72ec\u5b66\u7f16\u5199\u513f\u7ae5\u6210\u957f\u5e94\u7528\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u3002\u5982\u679c\u6709\u4efb\u4f55\u9519\u8bef\u6216\u758f\u6f0f\u4e4b\u5904\uff0c\u8bf7\u60a8\u8054\u7cfb\u6211\u3002 \u2460 \u5728\u8fdb\u5165Dja [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528docker\u52a0\u4e0anginx\u3001django\u548crds\uff0c\u5b8c\u6210web\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-14T23:50:37+00:00","article_modified_time":"2024-05-04T02:48:03+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8df6913a08637a6d4682\/38-1.png"}],"author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/","name":"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-14T23:50:37+00:00","dateModified":"2024-05-04T02:48:03+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Docker\u52a0\u4e0aNginx\u3001Django\u548cRDS\uff0c\u5b8c\u6210WEB\u5e94\u7528\u6b65\u9aa4\u2463\uff1a\u5c1d\u8bd5\u767b\u5f55\u4e0e\u6ce8\u9500\u529f\u80fd"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8docker%e5%8a%a0%e4%b8%8anginx%e3%80%81django%e5%92%8crds%ef%bc%8c%e5%ae%8c%e6%88%90web%e5%ba%94%e7%94%a8%e6%ad%a5%e9%aa%a4%e2%91%a3%ef%bc%9a%e5%b0%9d%e8%af%95%e7%99%bb%e5%bd%95\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=49920"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49920\/revisions"}],"predecessor-version":[{"id":97869,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49920\/revisions\/97869"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=49920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=49920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=49920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}