{"id":49681,"date":"2023-03-06T08:59:18","date_gmt":"2023-10-18T13:11:55","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/"},"modified":"2024-04-29T17:35:59","modified_gmt":"2024-04-29T09:35:59","slug":"%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/","title":{"rendered":"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World"},"content":{"rendered":"<p>\u8fd9\u662f\u4e00\u4e2a\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684&#8221;Hello World&#8221;\u3002\u6211\u4eec\u5c06\u4f7f\u7528MariaDB\u4f5c\u4e3a\u6570\u636e\u5e93\u3002<\/p>\n<p>\u5b8c\u6210\u65f6\u7684\u6587\u4ef6\u5939\u7ed3\u6784\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code>proj01\r\n\u251c\u2500\u2500 accounts\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 migrations\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 models.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 tests.py\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 views.py\r\n\u251c\u2500\u2500 home\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 migrations\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 models.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 tests.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 manage.py\r\n\u251c\u2500\u2500 proj01\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 asgi.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 settings.py\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 urls.py\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 wsgi.py\r\n\u2514\u2500\u2500 templates\r\n    \u2514\u2500\u2500 registration\r\n        \u251c\u2500\u2500 base.html\r\n        \u251c\u2500\u2500 logged_out.html\r\n        \u2514\u2500\u2500 login.html\r\n<\/code><\/pre>\n<h1>\u521b\u5efa\u9879\u76ee<\/h1>\n<pre class=\"post-pre\"><code>django-admin startproject proj01\r\n<span class=\"nb\">cd <\/span>proj01\/\r\npython manage.py migrate\r\npython manage.py startapp home\r\n<\/code><\/pre>\n<blockquote><p>\u6211\u4f1a\u5728\u8fd9\u4e2a\u65f6\u95f4\u70b9\u4e0a\u8fd0\u884c\u5f00\u53d1\u670d\u52a1\u5668\u3002<\/p><\/blockquote>\n<pre class=\"post-pre\"><code>gunicorn proj01.wsgi\r\n<\/code><\/pre>\n<blockquote><p>\u5728\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95eehttp:\/\/127.0.0.1:8000\/\u3002<\/p><\/blockquote>\n<h1>\u521b\u5efa\u8981\u663e\u793a\u7684\u9875\u9762<\/h1>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.http<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">HttpResponse<\/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\"># @login_required\r\n<\/span><span class=\"k\">def<\/span> <span class=\"nf\">index<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** home *** start ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;\u30db\u30fc\u30e0\u3067\u3059\u3002&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">'&lt;p&gt;&lt;a href=\"accounts\/logout\/\"&gt;Logout&lt;\/a&gt;&lt;\/p&gt;'<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** Nov\/09\/2021 AM 08:38 ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** home *** end ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">HttpResponse<\/span><span class=\"p\">(<\/span><span class=\"n\">str_out<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"p\">(<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<span class=\"n\">INSTALLED_APPS<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"s\">'home'<\/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=\"p\">]<\/span>\r\n<span class=\"p\">(<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<span class=\"n\">LANGUAGE_CODE<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'ja'<\/span>\r\n<span class=\"n\">TIME_ZONE<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'Asia\/Tokyo'<\/span>\r\n<span class=\"p\">(<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<\/code><\/pre>\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\">include<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/span>\r\n\r\n<span class=\"n\">urlpatterns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n<span class=\"c1\">#    path('accounts\/', include('django.contrib.auth.urls')),\r\n<\/span>    <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\">'home.urls'<\/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=\"p\">]<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">.<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">views<\/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\">index<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'index'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<blockquote><p>\u6211\u5c06\u518d\u6b21\u542f\u52a8\u670d\u52a1\u5668\u3002<\/p><\/blockquote>\n<pre class=\"post-pre\"><code>gunicorn proj01.wsgi\r\n<\/code><\/pre>\n<h1>\u5c06\u6570\u636e\u5e93\u5207\u6362\u81f3MariaDB<\/h1>\n<pre class=\"post-pre\"><code><span class=\"p\">(<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<span class=\"n\">DATABASES<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"s\">'default'<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"s\">'ENGINE'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'django.db.backends.mysql'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'NAME'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'django'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'USER'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'django'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'PASSWORD'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'tiger123'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'HOST'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'localhost'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"s\">'PORT'<\/span><span class=\"p\">:<\/span> <span class=\"s\">'3306'<\/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\">'init_command'<\/span><span class=\"p\">:<\/span> <span class=\"s\">\"SET sql_mode='STRICT_TRANS_TABLES'\"<\/span><span class=\"p\">,<\/span>\r\n                <span class=\"p\">},<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">(<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<\/code><\/pre>\n<p>\u53cd\u6620\u8a2d\u5b9a\u66f4\u6539<\/p>\n<pre class=\"post-pre\"><code>python manage.py migrate\r\n<\/code><\/pre>\n<h1>\u521b\u5efa\u8d85\u7ea7\u7528\u6237<\/h1>\n<pre class=\"post-pre\"><code>$ python manage.py createsuperuser\r\n\u30e6\u30fc\u30b6\u30fc\u540d (leave blank to use 'uchida'): admin\r\n\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9: test@test.com\r\nPassword: \r\nPassword (again): \r\n<\/code><\/pre>\n<blockquote><p>\u6211\u5011\u5c07\u518d\u6b21\u555f\u52d5\u4f3a\u670d\u5668\u3002<\/p><\/blockquote>\n<pre class=\"post-pre\"><code>gunicorn proj01.wsgi\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8ceb913a08637a6d1ec0\/23-0.png\" alt=\"django_nov09_bb.png\" \/><\/div>\n<p>\u4f60\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u7684\u65b9\u5f0f\u6765\u786e\u8ba4\u5df2\u521b\u5efa\u7684\u7528\u6237\u3002<\/p>\n<pre class=\"post-pre\"><code>$ python manage.py dbshell\r\n\r\n\r\nMariaDB [django]&gt; select username from auth_user;\r\n+----------+\r\n| username |\r\n+----------+\r\n| admin    |\r\n| betty    |\r\n| jack     |\r\n| scott    |\r\n+----------+\r\n4 rows in set (0.000 sec)\r\n<\/code><\/pre>\n<h1>\u521b\u5efa\u767b\u5f55\u9875\u9762<\/h1>\n<p>\u521b\u5efa\u6a21\u677f<\/p>\n<p>\u521b\u5efa\u6587\u4ef6\u5939<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir <\/span>templates\r\n<span class=\"nb\">mkdir <\/span>templates\/registration\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>{% load static %}\r\n<span class=\"cp\">&lt;!DOCTYPE html&gt;<\/span>\r\n<span class=\"nt\">&lt;html&gt;<\/span>\r\n<span class=\"nt\">&lt;head&gt;<\/span>\r\n<span class=\"nt\">&lt;meta<\/span> <span class=\"na\">charset=<\/span><span class=\"s\">\"utf-8\"<\/span><span class=\"nt\">&gt;<\/span>\r\n<span class=\"nt\">&lt;title&gt;<\/span>Django System<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n<span class=\"nt\">&lt;\/head&gt;<\/span>\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n<span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"container\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;div<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"content\"<\/span><span class=\"nt\">&gt;<\/span>\r\n        {% block content %}{% endblock %}\r\n    <span class=\"nt\">&lt;\/div&gt;<\/span>\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<pre class=\"post-pre\"><code>{% extends 'registration\/base.html' %}\r\n\r\n{% block title %}Login{% endblock %}\r\n\r\n{% block content %}\r\n<span class=\"nt\">&lt;h1&gt;<\/span>Login<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n<span class=\"nt\">&lt;section<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"common-form\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    {% if form.errors %}\r\n    <span class=\"nt\">&lt;p<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"error-msg\"<\/span><span class=\"nt\">&gt;<\/span>Your username and password didn't match. Please try again.<span class=\"nt\">&lt;\/p&gt;<\/span>\r\n    {% endif %}\r\n\r\n    {% if next %}\r\n    {% if user.is_authenticated %}\r\n    <span class=\"nt\">&lt;p<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"error-msg\"<\/span><span class=\"nt\">&gt;<\/span>Your account doesn't have access to this page. To proceed,\r\n        please login with an account that has access.<span class=\"nt\">&lt;\/p&gt;<\/span>\r\n    {% else %}\r\n    <span class=\"nt\">&lt;p<\/span> <span class=\"na\">class=<\/span><span class=\"s\">\"error-msg\"<\/span><span class=\"nt\">&gt;<\/span>Please login to see this page.<span class=\"nt\">&lt;\/p&gt;<\/span>\r\n    {% endif %}\r\n    {% endif %}\r\n\r\n    <span class=\"nt\">&lt;form<\/span> <span class=\"na\">method=<\/span><span class=\"s\">\"post\"<\/span> <span class=\"na\">action=<\/span><span class=\"s\">\"{% url 'login' %}\"<\/span><span class=\"nt\">&gt;<\/span>\r\n        {% csrf_token %}\r\n        {{ form.as_p }}\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\">\"submit\"<\/span><span class=\"nt\">&gt;<\/span>Login<span class=\"nt\">&lt;\/button&gt;<\/span>\r\n        <span class=\"nt\">&lt;input<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"hidden\"<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"next\"<\/span> <span class=\"na\">value=<\/span><span class=\"s\">\"{{ next }}\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;\/form&gt;<\/span>\r\n<span class=\"nt\">&lt;\/section&gt;<\/span>\r\n{% endblock %}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>{% extends 'registration\/base.html' %}\r\n\r\n{% block title %}Logout{% endblock %}\r\n\r\n{% block content %}\r\n<span class=\"nt\">&lt;h1&gt;<\/span>Logged Out<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n<span class=\"nt\">&lt;p&gt;<\/span>Thanks for spending some quality time with the Web site today.<span class=\"nt\">&lt;\/p&gt;<\/span>\r\n<span class=\"nt\">&lt;p&gt;&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'login' %}\"<\/span><span class=\"nt\">&gt;<\/span>Log in again<span class=\"nt\">&lt;\/a&gt;&lt;\/p&gt;<\/span>\r\n{% endblock %}\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u4fee\u6539home\/view.py\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.http<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">HttpResponse<\/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=\"o\">@<\/span><span class=\"n\">login_required<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">index<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** home *** start ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;\u30db\u30fc\u30e0\u3067\u3059\u3002&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">'&lt;p&gt;&lt;a href=\"accounts\/logout\/\"&gt;Logout&lt;\/a&gt;&lt;\/p&gt;'<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** Nov\/09\/2021 AM 08:38 ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"n\">str_out<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"&lt;p&gt;*** home *** end ***&lt;\/p&gt;\"<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">HttpResponse<\/span><span class=\"p\">(<\/span><span class=\"n\">str_out<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#8221;accounts&#8221;\u7684\u5e94\u7528\u7a0b\u5e8f\u3002<\/h1>\n<pre class=\"post-pre\"><code>python manage.py startapp accounts\r\n<\/code><\/pre>\n<p>\u8bf7\u4fee\u6539proj01\/urls.py\u6587\u4ef6\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\">include<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/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\">'accounts\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">include<\/span><span class=\"p\">(<\/span><span class=\"s\">'django.contrib.auth.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\">'home.urls'<\/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=\"p\">]<\/span>\r\n<\/code><\/pre>\n<p>\u5b9e\u73b0\u9000\u51fa\u767b\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">\uff08<\/span><span class=\"n\">\u7701\u7565<\/span><span class=\"err\">\uff09<\/span>\r\n<span class=\"n\">LOGIN_REDIRECT_URL<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'\/'<\/span>\r\n<\/code><\/pre>\n<blockquote><p>\u6211\u5c06\u518d\u6b21\u542f\u52a8\u670d\u52a1\u5668\u3002<\/p><\/blockquote>\n<pre class=\"post-pre\"><code>gunicorn proj01.wsgi\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8ceb913a08637a6d1ec0\/43-0.png\" alt=\"django_nov09_aa.png\" \/><\/div>\n<p>\u767b\u5f55\u7528\u6237\u5e94\u4f7f\u7528\u5728http:\/\/127.0.0.1:8000\/admin\/\u6ce8\u518c\u7684\u4fe1\u606f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662f\u4e00\u4e2a\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684&#8221;Hello World&#8221;\u3002\u6211\u4eec\u5c06\u4f7f\u7528MariaDB\u4f5c\u4e3a\u6570\u636e\u5e93\u3002 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-49681","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\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World - 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\u7528django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684hello-world\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World\" \/>\n<meta property=\"og:description\" content=\"\u8fd9\u662f\u4e00\u4e2a\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684&#8221;Hello World&#8221;\u3002\u6211\u4eec\u5c06\u4f7f\u7528MariaDB\u4f5c\u4e3a\u6570\u636e\u5e93\u3002 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684hello-world\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-18T13:11:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T09:35:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8ceb913a08637a6d1ec0\/23-0.png\" \/>\n<meta name=\"author\" content=\"\u97f5, \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=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \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%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/\",\"name\":\"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-10-18T13:11:55+00:00\",\"dateModified\":\"2024-04-29T09:35:59+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World\"}]},{\"@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\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World - 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\u7528django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684hello-world\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World","og_description":"\u8fd9\u662f\u4e00\u4e2a\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684&#8221;Hello World&#8221;\u3002\u6211\u4eec\u5c06\u4f7f\u7528MariaDB\u4f5c\u4e3a\u6570\u636e\u5e93\u3002 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684hello-world\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-10-18T13:11:55+00:00","article_modified_time":"2024-04-29T09:35:59+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8ceb913a08637a6d1ec0\/23-0.png"}],"author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/","name":"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-10-18T13:11:55+00:00","dateModified":"2024-04-29T09:35:59+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Django\u5b9e\u73b0\u5e26\u6709\u7528\u6237\u8ba4\u8bc1\u7684Hello World"}]},{"@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\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8django%e5%ae%9e%e7%8e%b0%e5%b8%a6%e6%9c%89%e7%94%a8%e6%88%b7%e8%ae%a4%e8%af%81%e7%9a%84hello-world%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49681","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=49681"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49681\/revisions"}],"predecessor-version":[{"id":86670,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49681\/revisions\/86670"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=49681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=49681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=49681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}