{"id":49402,"date":"2022-11-09T02:41:40","date_gmt":"2023-02-28T13:09:15","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/"},"modified":"2024-04-28T23:45:03","modified_gmt":"2024-04-28T15:45:03","slug":"django%e7%9a%84%e5%9f%ba%e7%a1%80","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/","title":{"rendered":"Django\u7684\u57fa\u7840"},"content":{"rendered":"<h1>MTV\uff08\u6a21\u578b-\u6a21\u677f-\u89c6\u56fe\uff09\u7684\u7406\u5ff5<\/h1>\n<h2>\u6a21\u7279\u513f<\/h2>\n<p>\u6a21\u578b\u9700\u8981\u4e0e\u6570\u636e\u5e93\u8fdb\u884c\u534f\u4f5c\u7684\u6587\u4ef6\u3002<\/p>\n<p>\u7528Django\u5236\u4f5c\u5e94\u7528\u7a0b\u5e8f\u65f6\u4f1a\u81ea\u52a8\u751f\u6210\u7684models.py\u6587\u4ef6\u7b26\u5408\u6b64\u6761\u4ef6\u3002<\/p>\n<p>\u4ee5\u4e0b\u662fmodels.py\u6587\u4ef6\u4e2d\u7684\u4e00\u6bb5\u793a\u4f8b\u4ee3\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.db<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">models<\/span>\r\n\r\n<span class=\"c1\"># Create your models here.\r\n<\/span>\r\n<span class=\"n\">CATEGORY_CHOICES<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span>\r\n    <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"s\">'\u63e1\u308a'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"s\">'\u8ecd\u8266'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"s\">'\u5dfb\u304d'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">)<\/span>\r\n\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">SushiModel<\/span><span class=\"p\">(<\/span><span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">Model<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">category<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">IntegerField<\/span><span class=\"p\">(<\/span><span class=\"n\">choices<\/span><span class=\"o\">=<\/span><span class=\"n\">CATEGORY_CHOICES<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CharField<\/span><span class=\"p\">(<\/span><span class=\"n\">max_length<\/span><span class=\"o\">=<\/span><span class=\"mi\">50<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>ID\u4f1a\u81ea\u52a8\u751f\u6210\uff0ccategory\u548cname\u5c06\u6210\u4e3a\u6570\u636e\u5e93\u4e2d\u7684\u5217\u540d\u3002<\/p>\n<h2>\u8bf7\u7ed9\u51fa\u4e2d\u6587\u539f\u751f\u7ffb\u8bd1<\/h2>\n<p>views.py\u662fDjango\u81ea\u52a8\u751f\u6210\u7684\u6587\u4ef6\u3002<br \/>\n\u5728\u89c6\u56fe\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u6307\u5b9a\u6bcf\u4e2a\u51fd\u6570\u8981\u5c06\u4fe1\u606f\u4f20\u9012\u7ed9\u54ea\u4e2aHTML\u6587\u4ef6\u3002\u8fd9\u5c06\u4f7f\u6bcf\u4e2a\u51fd\u6570\u4e0e\u6a21\u677f\u76f8\u5173\u8054\u3002<\/p>\n<h2>\u6a21\u677f<\/h2>\n<p>\u7b80\u5355\u6765\u8bf4\uff0c\u5b83\u662fHTML\u6587\u4ef6\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/11-0.png\" alt=\"1 (3).png\" \/><\/div>\n<h1>\u521b\u5efaDjango\u9879\u76ee<\/h1>\n<p>\u4f60\u53ef\u4ee5\u8df3\u8fc7\u865a\u62df\u73af\u5883\u7684\u642d\u5efa\uff0c\u76f4\u63a5\u4eceDjango\u7684\u5b89\u88c5\u5f00\u59cb\u4e5f\u53ef\u4ee5\u3002<\/p>\n<h2>\u5efa\u7acb\u865a\u62df\u73af\u5883<\/h2>\n<p>Python\u6709\u4e00\u4e2a\u540d\u4e3avenv\u7684\u6a21\u5757\uff0c\u53ef\u4ee5\u7528\u6765\u521b\u5efa\u865a\u62df\u73af\u5883\u3002<br \/>\n\u901a\u8fc7\u4f7f\u7528py -m venv\u547d\u4ee4\uff0c\u53ef\u4ee5\u521b\u5efa\u865a\u62df\u73af\u5883\uff0c\u5e76\u6307\u5b9a\u76ee\u5f55\u540d\u3002<br \/>\n\u6253\u5f00\u547d\u4ee4\u63d0\u793a\u7b26\uff0c\u5207\u6362\u5230\u8981\u521b\u5efa\u865a\u62df\u73af\u5883\u7684\u76ee\u5f55\u3002<br \/>\n\u5207\u6362\u540e\uff0c\u4f7f\u7528venv\u6765\u521b\u5efa\u865a\u62df\u73af\u5883\u3002<\/p>\n<pre class=\"post-pre\"><code>py -m venv DjangoVenv\r\n<\/code><\/pre>\n<p>\u5f53\u8f93\u5165\u4e0a\u8ff0\u547d\u4ee4\u65f6\uff0c\u4f1a\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aDjangoVenv\u7684\u76ee\u5f55\u3002<\/p>\n<h2>\u7528 VSCode \u6253\u5f00\u6587\u4ef6\u5939<\/h2>\n<p>\u6211\u5011\u5c07\u5728VScode\u4e2d\u6253\u958b\u525b\u525b\u5efa\u7acb\u7684\u76ee\u9304\u3002 VScode l\u00ec de .)<\/p>\n<pre class=\"post-pre\"><code>code DjangoVenv\r\n<\/code><\/pre>\n<p>\u8fd0\u884c\u8fd9\u4e2a\u547d\u4ee4\u5c06\u4f1a\u6253\u5f00VScode\u3002\u5728\u521a\u521a\u521b\u5efa\u7684\u76ee\u5f55\u4e0b\uff0c\u5df2\u7ecf\u521b\u5efa\u4e86Include\u3001Lib\u3001Scripts\u548cpyvenv.cfg\u56db\u4e2a\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>DjangoVenv\r\n\u251c\u2500Include\r\n\u251c\u2500Lib\r\n\u251c\u2500Scripts\r\n\u2514\u2500pyvenv.cfg\r\n<\/code><\/pre>\n<h2>\u6fc0\u6d3b\u865a\u62df\u73af\u5883<\/h2>\n<p>\u8bf7\u5728Windows\u4e2d\u6253\u5f00VScode\u7684\u7ec8\u7aef\uff0c\u8f93\u5165Scripts\u76ee\u5f55\u4e0b\u7684activate\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u7136\u540e\u865a\u62df\u73af\u5883\u5c06\u88ab\u6fc0\u6d3b\u3002<\/p>\n<pre class=\"post-pre\"><code>\\DjangoVenv&gt;Scripts\\activate\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>(DjangoVenv)\\DjangoVenv&gt;\r\n<\/code><\/pre>\n<p>\u5f53\u770b\u5230(\u865a\u62df\u73af\u5883\u7684\u76ee\u5f55\u540d\u79f0)\u65f6\uff0c\u8868\u793a\u6210\u529f\u3002<\/p>\n<h2>\u5b89\u88c5Django<\/h2>\n<p>\u5728VScode\u7684\u7ec8\u7aef\u4e2d\u8f93\u5165\u4ee5\u4e0b\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>pip install django\r\n<\/code><\/pre>\n<p>\u5982\u679c\u663e\u793a\u5982\u4e0b\uff0c\u5219\u8868\u793a\u6210\u529f\u3002<\/p>\n<pre class=\"post-pre\"><code>Successfully installed asgiref-3.2.7 django-3.0.6 pytz-2020.1 sqlparse-0.3.1\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884cpip list\u6765\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>&gt;pip list\r\nPackage    Version\r\n---------- -------\r\nasgiref    3.2.7\r\nDjango     3.0.6\r\npip        19.2.3\r\npytz       2020.1\r\nsetuptools 41.2.0\r\nsqlparse   0.3.1\r\n<\/code><\/pre>\n<p>\u5f53\u4f60\u770b\u5230 Django \u51fa\u73b0\u65f6\uff0c\u8fd9\u8868\u793a\u6210\u529f\u3002<\/p>\n<h2>\u521b\u5efa\u6a21\u7248<\/h2>\n<p>\u6267\u884c\u547d\u4ee4 &#8221;&#8217;django-admin startproject &lt;\u9879\u76ee\u540d&gt;&#8221;&#8217; \u5c06\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&lt;\u9879\u76ee\u540d&gt;\u7684\u6587\u4ef6\u5939\u3002<\/p>\n<pre class=\"post-pre\"><code>django-admin startproject django_practice \r\n<\/code><\/pre>\n<p>\u8f38\u5165\u300c\u3068\u300d\u3068\u8f38\u5165\u3059\u308b\u3068\uff0c\u5c07\u5efa\u7acbdjango_practice\u76ee\u9304\u3002<br \/>\n\u8a72\u76ee\u9304\u5167\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre class=\"post-pre\"><code>?django_practice\r\n \u2523 ?django_practice#\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\r\n \u2503 \u2523 ?asgi.py #asgi\u3068\u3044\u3046\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n \u2503 \u2523 ?settings.py\u3000#\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n \u2503 \u2523 ?urls.py #URL\u306e\u8a2d\u5b9a\r\n \u2503 \u2523 ?wsgi.py #wsgi\u3068\u3044\u3046\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n \u2503 \u2517 ?__init__.py\r\n \u2517 ?manage.py\r\n<\/code><\/pre>\n<h2>\u8ba9\u670d\u52a1\u5668\u8fd0\u884c\u4e00\u4e0b<\/h2>\n<p>\u5f53\u60a8\u5c06runserver\u4f5c\u4e3amanege.py\u7684\u53c2\u6570\u4f20\u9012\u65f6\uff0c\u53ef\u4ee5\u542f\u52a8\u670d\u52a1\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code>python manage.py runserver\r\n<\/code><\/pre>\n<p>\u5f53\u60a8\u8f93\u5165\u65f6<\/p>\n<pre class=\"post-pre\"><code>Watching for file changes with StatReloader\r\nPerforming system checks...\r\n\r\nSystem check identified no issues (0 silenced).\r\n\r\nYou have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.\r\nRun 'python manage.py migrate' to apply them.\r\nMay 11, 2020 - 09:24:15\r\nDjango version 3.0.6, using settings 'django_practice.settings'\r\nStarting development server at http:\/\/127.0.0.1:8000\/\r\nQuit the server with CTRL-BREAK.\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/46-0.png\" alt=\"Django\uff1a\u7de0\u3081\u5207\u308a\u306e\u3042\u308b\u5b8c\u74a7\u4e3b\u7fa9\u8005\u306e\u305f\u3081\u306eWeb\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3002.png\" \/><\/div>\n<h2>\u521b\u5efa\u5e94\u7528\u7a0b\u5e8f<\/h2>\n<p>\u8bf7\u4ee5\u4e2d\u6587\u5206\u652f\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\uff0c\u547d\u4ee4\u4e3a\uff1apython manage.py startapp &lt;\u5e94\u7528\u7a0b\u5e8f\u540d\u79f0&gt;\u3002<\/p>\n<pre class=\"post-pre\"><code>cd django_practice\r\npython manage.py startapp django_application \r\n<\/code><\/pre>\n<p>\u5c06\u4f1a\u521b\u5efa\u4e00\u4e2a\u540d\u4e3adjango_application\u7684\u65b0\u76ee\u5f55\u3002<\/p>\n<h2>\u5efa\u7b51<\/h2>\n<pre class=\"post-pre\"><code>?django_practice\r\n \u2523 ?django_application\u3000#\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\r\n \u2503 \u2523 ?migrations\u3000#\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u8a08\u56f3\r\n \u2503 \u2523 ?admin.py\u3000#\u7ba1\u7406\u753b\u9762\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n \u2503 \u2523 ?apps.py\u3000#\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n \u2503 \u2523 ?forms.py **#form\u5f62\u6210**\r\n \u2503 \u2523 ?models.py\u3000#\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5b9a\u7fa9\r\n \u2503 \u2523 ?tests.py #\u30c6\u30b9\u30c8\u8a2d\u5b9a\r\n \u2503 \u2523 ?views.py #\u30d3\u30e5\u30fc\r\n \u2523 ?django_practice\r\n \u2503 \u2523 ?asgi.py\r\n \u2503 \u2523 ?settings.py\r\n \u2503 \u2523 ?urls.py\r\n \u2503 \u2523 ?wsgi.py\r\n \u2503 \u2517 ?__init__.py\r\n \u2523 ?db.sqlite3\u3000#runserver\u3067\u4f5c\u6210\u3055\u308c\u305f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\r\n \u2517 ?manage.py\r\n\r\n<\/code><\/pre>\n<h2>\u521b\u5efa\u89c6\u56fe<\/h2>\n<p>\u8bf7\u6253\u5f00django_application\/views.py\u6587\u4ef6\uff0c\u7136\u540e\u5199\u4e0b\u4ee5\u4e0b\u7684Python\u4ee3\u7801\uff1a<br \/>\n\u5b9a\u4e49\u4e00\u4e2ahellofunc\u51fd\u6570\uff0c<br \/>\n\u5b83\u662f\u4e00\u4e2a\u8fd4\u56deHttpResponse\u5bf9\u8c61\u7684\u51fd\u6570\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\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">hellofunc<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">html<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"\"\r\n            &lt;!DOCTYPE html&gt;\r\n            &lt;html lang=\"ja\"&gt;\r\n            &lt;head&gt;\r\n                &lt;meta charset=\"UTF-8\"&gt;\r\n                &lt;title&gt;Django&lt;\/title&gt;\r\n            &lt;\/head&gt;\r\n            &lt;body&gt;\r\n                &lt;h1&gt;Hello world&lt;\/h1&gt;\r\n                &lt;p&gt;\u3053\u3093\u306b\u3061\u306f&lt;\/p&gt;\r\n            &lt;\/body&gt;\r\n            &lt;\/html&gt;\r\n            \"\"\"<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">HttpResponse<\/span><span class=\"p\">(<\/span><span class=\"n\">html<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h2>\u5173\u4e8eURL\u52a0\u8f7d<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/57-0.png\" alt=\"2 (2).png\" \/><\/div>\n<h2>\u5e94\u7528\u7a0b\u5e8f\u7684URL\u534f\u540c\u8fde\u63a5<\/h2>\n<p>\u9996\u5148\uff0c\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u76ee\u5f55\u4e2d\u521b\u5efa\u4e00\u4e2aurls.py\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>?django_application\r\n \u2523 ?migrations\r\n \u2503 \u2517 ?__init__.py\r\n \u2523 ?admin.py\r\n \u2523 ?apps.py\r\n \u2523 ?models.py\r\n \u2523 ?tests.py\r\n \u2523 ?urls.py #\u8ffd\u52a0\r\n \u2523 ?views.py\r\n \u2517 ?__init__.py\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5c06\u6b64\u5e94\u7528\u7a0b\u5e8f\u7684urls.py\u5bfc\u5165\u5230django_practice\/urls.py\u4e2d\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>\r\n<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><span class=\"p\">,<\/span> <span class=\"n\">path<\/span>\r\n\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\">'application\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">include<\/span><span class=\"p\">(<\/span><span class=\"s\">'django_application.urls'<\/span><span class=\"p\">)),<\/span>\r\n<span class=\"p\">]<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u8fd9\u4e2a\uff0c\u53ef\u4ee5\u52a0\u8f7d\u5e94\u7528\u7a0b\u5e8f\u7684urls.py\u3002<\/p>\n<h2>\u4f7f\u7528views.py\u548curls.py\u6765\u5728\u7f51\u7ad9\u4e0a\u663e\u793a<\/h2>\n<p>\u8bf7\u5728\u5e94\u7528\u7a0b\u5e8f\u7684urls.py\u6587\u4ef6\u4e2d\u7f16\u5199\u4ee5\u4e0b\u4ee3\u7801\uff0c\u5e76\u5c06\u51fd\u6570\u52a0\u8f7d\u5230path()\u51fd\u6570\u7684\u53c2\u6570\u4e2d\u3002<\/p>\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\">.views<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">hellofunc<\/span>\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\">'hello\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">hellofunc<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/67-0.png\" alt=\"127_0_0_1_8000_application_hello_.png\" \/><\/div>\n<h2>\u4f7f\u7528\u6a21\u677f<\/h2>\n<p>\u8fd9\u6b21\u6211\u4eec\u5c06\u4f7f\u7528\u6a21\u677f\u6765\u663e\u793a\u5728\u7f51\u7ad9\u4e0a\u3002<\/p>\n<h2>\u521b\u5efa\u548c\u8bbe\u7f6e\u6a21\u677f\u76ee\u5f55<\/h2>\n<p>\u5c06\u6a21\u677f\u76ee\u5f55\u521b\u5efa\u5728manage.py\u6587\u4ef6\u6240\u5728\u7684\u76ee\u5f55\u4e0b<br \/>\n\u540c\u65f6\u5728\u6a21\u677f\u76ee\u5f55\u4e0b\u521b\u5efahtml\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code>\r\n?django_practice \r\n \u2523 ?django_application\r\n \u2523 ?django_practice\r\n \u2523 ?templates #\u8ffd\u52a0\r\n \u2503 \u2517 test.html #\u8ffd\u52a0\r\n \u2523 ?db.sqlite3\r\n \u2517 ?manage.py\r\n\r\n<\/code><\/pre>\n<p>\u6211\u5bf9HTML\u6587\u4ef6\u8fdb\u884c\u4e86\u5982\u4e0b\u8c03\u6574\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!DOCTYPE html&gt;<\/span>\r\n<span class=\"nt\">&lt;html<\/span> <span class=\"na\">lang=<\/span><span class=\"s\">\"ja\"<\/span><span class=\"nt\">&gt;<\/span>\r\n\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<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n<span class=\"nt\">&lt;\/head&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n    <span class=\"nt\">&lt;h1&gt;<\/span>render_test<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n<span class=\"nt\">&lt;\/body&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u66f4\u6539settings.py\u6587\u4ef6\u4e2dTEMPLATES\u4e0b\u7684DIRS\uff0c\u5c06\u5176\u5199\u6210\u4ee5\u4e0b\u65b9\u5f0f\u6765\u8bbe\u7f6e\u6a21\u677f\u76ee\u5f55\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=\"c1\">#\u66f8\u304d\u5909\u3048\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>\u901a\u8fc7\u8bbe\u7f6e\u8fd9\u4e2a\u9009\u9879\uff0c\u53ef\u4ee5\u5728render\uff08\uff09\u6216get_template\uff08\uff09\u4ee5\u53ca\u7c7b\u57fa\u89c6\u56fe\u7684\u5185\u90e8\u8c03\u7528\u8bbe\u7f6e\u7684\u76ee\u5f55\u3002<\/p>\n<h2>\u4f7f\u7528render\u51fd\u6570<\/h2>\n<p>render\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u52a0\u8f7d\u6a21\u677f\u5e76\u5c06\u7ed3\u679c\u8fd4\u56de\u4e3aHttpResponse\u5bf9\u8c61\u3002<\/p>\n<p>\u5728django_application\u7684views.py\u6587\u4ef6\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u65b0\u7684\u51fd\u6570\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.shortcuts<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">render<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">render_test<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><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\">'test.html'<\/span><span class=\"p\">)<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u6211\u4e5f\u4f1a\u66f4\u6539urls.py\u6587\u4ef6\u3002<\/p>\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\">.views<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">hellofunc<\/span><span class=\"p\">,<\/span> <span class=\"n\">render_test<\/span>\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\">'hello\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">hellofunc<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'render\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">render_test<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/84-0.png\" alt=\"Django.png\" \/><\/div>\n<h3>\u521b\u5efa\u548c\u914d\u7f6e\u9759\u6001\u76ee\u5f55<\/h3>\n<p>\u521b\u5efa\u9759\u6001\u76ee\u5f55<\/p>\n<pre class=\"post-pre\"><code>?django_practice\r\n \u2523 ?django_application\r\n \u2523 ?django_practice\r\n \u2523 ?static\u3000#\u8ffd\u52a0\r\n \u2503 \u2517 ?test.css\u3000#\u8ffd\u52a0\r\n \u2523 ?templates\r\n \u2523 ?db.sqlite3\r\n \u2517 ?manage.py\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nt\">h1<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"no\">red<\/span><span class=\"p\">;<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u5728settings.py\u7684\u6700\u540e\u6dfb\u52a0\u4ee5\u4e0b\u884c\u6765\u914d\u7f6e\u9759\u6001\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">STATICFILES_DIRS<\/span> <span class=\"o\">=<\/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\">'static'<\/span><span class=\"p\">)]<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u52a0\u8f7dstatic\u76ee\u5f55\u5230html\u6587\u4ef6\u4e2d\uff0c\u5c06\u5176\u6539\u5199\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!DOCTYPE html&gt;<\/span>\r\n<span class=\"nt\">&lt;html<\/span> <span class=\"na\">lang=<\/span><span class=\"s\">\"ja\"<\/span><span class=\"nt\">&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;head&gt;<\/span>\r\n    {% load static %}<span class=\"c\">&lt;!-- static\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u8aad\u307f\u8fbc\u307f--&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<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\">type=<\/span><span class=\"s\">'text\/css'<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% static 'test.css' %}\"<\/span><span class=\"nt\">&gt;<\/span>\r\n<span class=\"nt\">&lt;\/head&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n    <span class=\"nt\">&lt;h1&gt;<\/span>render_test<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n<span class=\"nt\">&lt;\/body&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/93-0.png\" alt=\"\u30b8\u30e3\u30f3\u30b4.png\" \/><\/div>\n<h2>\u521b\u5efa\u6a21\u578b<\/h2>\n<p>\u6211\u4f1a\u5bf9django\u5e94\u7528\u7a0b\u5e8f\u7684\u6a21\u578b\u6587\u4ef6models.py\u8fdb\u884c\u66f4\u6539\uff0c\u4ee5\u521b\u5efa\u4e00\u4e2a\u6a21\u578b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.db<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">models<\/span>\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">Article<\/span><span class=\"p\">(<\/span><span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">Model<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">title<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CharField<\/span><span class=\"p\">(<\/span><span class=\"n\">max_length<\/span><span class=\"o\">=<\/span><span class=\"mi\">200<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">content<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">TextField<\/span><span class=\"p\">()<\/span>\r\n    <span class=\"n\">reporter<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CharField<\/span><span class=\"p\">(<\/span><span class=\"n\">max_length<\/span><span class=\"o\">=<\/span><span class=\"mi\">50<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ArticleModel \u7684\u6a21\u578b\uff0c\u5176\u5305\u542b\u4e86 title\u3001content \u548c reporter \u8fd9\u4e09\u4e2a\u5217\u3002<br \/>\n\u6bcf\u4e2a\u5217\u90fd\u7531 Field \u7c7b\u7684\u5b9e\u4f8b\u6765\u4ee3\u8868\uff0c\u6bd4\u5982 CharField \u8868\u793a\u5b57\u7b26\u5b57\u6bb5\u3002<br \/>\n\u6bcf\u4e2a\u5b57\u6bb5\u5411 Django \u4f20\u8fbe\u4e86\u5b83\u6240\u6301\u6709\u7684\u6570\u636e\u7c7b\u578b\u3002<\/p>\n<h2>\u6fc0\u6d3b\u6a21\u578b<\/h2>\n<p>\u4f60\u53ef\u4ee5\u4f7f\u7528Django\u7684\u529f\u80fd\u6765\u521b\u5efa\u6570\u636e\u5e93\u3002<\/p>\n<h2>settings.py\u6587\u4ef6\u4e2d\u7684INSTALLED_APPS\u8bbe\u7f6e<\/h2>\n<p>\u8981\u4f7f\u7528\u6a21\u578b\uff0c\u9996\u5148\u5fc5\u987b\u5728Django\u7684\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u548c\u5b89\u88c5\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n<p>\u5c06\u901a\u8fc7startapp\u547d\u4ee4\u521b\u5efa\u7684\u5e94\u7528\u7a0b\u5e8f\u6dfb\u52a0\u5230\u8bbe\u7f6e\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\"># Application definition\r\n<\/span>\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\">'django_application'<\/span><span class=\"p\">,<\/span>  <span class=\"c1\"># \u8ffd\u52a0\r\n<\/span><span class=\"p\">]<\/span> \r\n<\/code><\/pre>\n<p>\u628a\u5bf9Django\u6a21\u578b\u7684\u66f4\u6539\u4fdd\u5b58\u4e3a\u8fc1\u79fb\u3002<\/p>\n<pre class=\"post-pre\"><code>python manage.py makemigrations\r\n<\/code><\/pre>\n<p>\u6267\u884c\u4e0a\u8ff0\u64cd\u4f5c\u5c06\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre class=\"post-pre\"><code>Migrations for 'django_application':\r\n  django_application\\migrations\\0001_initial.py\r\n    - Create model Article\r\n<\/code><\/pre>\n<p>\u8fc1\u79fb\u6587\u4ef6\u5c06\u88ab\u521b\u5efa\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u8fc1\u79fb\u76ee\u5f55\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>?django_application\r\n \u2517 ?migrations\r\n   \u2523 ?0001_initial.py #\u8ffd\u52a0\u3055\u308c\u308b\r\n   \u2517 ?__init__.py\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.db<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">migrations<\/span><span class=\"p\">,<\/span> <span class=\"n\">models<\/span>\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">Migration<\/span><span class=\"p\">(<\/span><span class=\"n\">migrations<\/span><span class=\"p\">.<\/span><span class=\"n\">Migration<\/span><span class=\"p\">):<\/span>\r\n\r\n    <span class=\"n\">initial<\/span> <span class=\"o\">=<\/span> <span class=\"bp\">True<\/span>\r\n\r\n    <span class=\"n\">dependencies<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"p\">]<\/span>\r\n\r\n    <span class=\"n\">operations<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n        <span class=\"n\">migrations<\/span><span class=\"p\">.<\/span><span class=\"n\">CreateModel<\/span><span class=\"p\">(<\/span>\r\n            <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"s\">'Article'<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"n\">fields<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span>\r\n                <span class=\"p\">(<\/span><span class=\"s\">'id'<\/span><span class=\"p\">,<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">AutoField<\/span><span class=\"p\">(<\/span><span class=\"n\">auto_created<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">primary_key<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">serialize<\/span><span class=\"o\">=<\/span><span class=\"bp\">False<\/span><span class=\"p\">,<\/span> <span class=\"n\">verbose_name<\/span><span class=\"o\">=<\/span><span class=\"s\">'ID'<\/span><span class=\"p\">)),<\/span>\r\n                <span class=\"p\">(<\/span><span class=\"s\">'title'<\/span><span class=\"p\">,<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CharField<\/span><span class=\"p\">(<\/span><span class=\"n\">max_length<\/span><span class=\"o\">=<\/span><span class=\"mi\">200<\/span><span class=\"p\">)),<\/span>\r\n                <span class=\"p\">(<\/span><span class=\"s\">'content'<\/span><span class=\"p\">,<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">TextField<\/span><span class=\"p\">()),<\/span>\r\n                <span class=\"p\">(<\/span><span class=\"s\">'reporter'<\/span><span class=\"p\">,<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CharField<\/span><span class=\"p\">(<\/span><span class=\"n\">max_length<\/span><span class=\"o\">=<\/span><span class=\"mi\">50<\/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<\/code><\/pre>\n<p>\u7136\u540e\u6267\u884c\u8fc1\u79fb\u64cd\u4f5c\uff0c\u521b\u5efa\u8fd9\u4e9b\u6a21\u578b\u8868\u5230\u6570\u636e\u5e93\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code> python manage.py migrate\r\n<\/code><\/pre>\n<p>\u5f53\u4ee5\u4e0b\u5185\u5bb9\u663e\u793a\u51fa\u6765\u7684\u65f6\u5019\uff0c\u8868\u793a\u6210\u529f\uff1a<\/p>\n<p>\u6b63\u5728\u5e94\u7528django_application.0001_initial&#8230; \u5b8c\u6210<\/p>\n<p>\u8fd9\u6837\uff0c\u6570\u636e\u5e93\u4e2d\u5c31\u4f1a\u521b\u5efa\u51fa\u8868\u683c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u6a21\u578b\u3002<\/p>\n<h2>\u5728Django\u7684\u7ba1\u7406\u7f51\u7ad9\u4e0a\u5bf9\u6a21\u578b\u8fdb\u884c\u64cd\u4f5c<\/h2>\n<p>Django\u81ea\u52a8\u521b\u5efa\u4e86\u6a21\u578b\u7ba1\u7406\u7f51\u7ad9\uff0c\u60a8\u53ef\u4ee5\u5229\u7528\u8be5\u7f51\u7ad9\u5bf9\u6a21\u578b\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<h2>\u521b\u5efa\u7ba1\u7406\u7528\u6237<\/h2>\n<p>\u9996\u5148\u9700\u8981\u521b\u5efa\u7ba1\u7406\u7f51\u7ad9\u7684\u7ba1\u7406\u7528\u6237<br \/>\n\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u62e5\u6709\u7f51\u7ad9\u7ba1\u7406\u6743\u9650\u7684\u7528\u6237<\/p>\n<pre class=\"post-pre\"><code>\r\npython manage.py createsuperuser\r\n<\/code><\/pre>\n<p>\u8bf7\u8f93\u5165\u60a8\u559c\u6b22\u7684\u7528\u6237\u540d\u5e76\u6309\u4e0bEnter\u952e\u3002<\/p>\n<pre class=\"post-pre\"><code>Username: admin\r\n<\/code><\/pre>\n<p>\u8bf7\u60a8\u8f93\u5165\u8981\u4f7f\u7528\u7684\u90ae\u7bb1\u5730\u5740<br \/>\n\u5982\u679c\u4e0d\u60f3\u6ce8\u518c\uff0c\u8bf7\u76f4\u63a5\u6309\u4e0bEnter\u952e<\/p>\n<pre class=\"post-pre\"><code>Email address: admin@example.com\r\n<\/code><\/pre>\n<p>\u8f93\u5165\u5bc6\u7801<\/p>\n<pre class=\"post-pre\"><code>Password: **********\r\nPassword (again): *********\r\nSuperuser created successfully.\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u7ba1\u7406\u5458\u7528\u6237\u5df2\u88ab\u521b\u5efa\u3002\u63a5\u4e0b\u6765\uff0c\u8fd0\u884c\u670d\u52a1\u5668\u5e76\u8bbf\u95ee http:\/\/127.0.0.1:8000\/admin\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/126-0.png\" alt=\"Log_in_Django_site_admin.png\" \/><\/div>\n<p>\u8bf7\u8f93\u5165\u521a\u521a\u521b\u5efa\u7684\u7528\u6237\u4fe1\u606f\u4ee5\u767b\u5f55\u3002\u5c06\u4f1a\u663e\u793aDjango\u7ba1\u7406\u7d22\u5f15\u9875\u9762\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/128-0.png\" alt=\"Site_administration_Django_site_admin.png\" \/><\/div>\n<p>\u7136\u800c\uff0c\u76ee\u524d\u5c1a\u65e0\u6b64\u6b21\u521b\u5efa\u7684\u5e94\u7528\u7a0b\u5e8f\u7684\u6a21\u578b\u7ba1\u7406\u6240\u5728\u4f4d\u7f6e\u3002\u82e5\u8981\u6dfb\u52a0\u5230\u6b64\u5904\uff0c\u9700\u8981\u4fee\u6539\u5e94\u7528\u7a0b\u5e8f\u7684admin.py\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">.models<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Article<\/span>\r\n\r\n<span class=\"n\">admin<\/span><span class=\"p\">.<\/span><span class=\"n\">site<\/span><span class=\"p\">.<\/span><span class=\"n\">register<\/span><span class=\"p\">(<\/span><span class=\"n\">Article<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>\u8ffd\u52a0\u540e\uff0c\u5c06\u5728\u7ba1\u7406\u7f51\u7ad9\u4e0a\u663e\u793a\u51fa\u6765\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/132-0.png\" alt=\"Site_administration_Django_site_admin (1).png\" \/><\/div>\n<p>\u60a8\u53ef\u4ee5\u5728\u672c\u7f51\u7ad9\u4e0a\u8fdb\u884cArticle\u6a21\u578b\u7684\u7ba1\u7406\u3002<\/p>\n<h2>\u4f7f\u7528CreateView\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6570\u636e\u521b\u5efa\u9875\u9762<\/h2>\n<p>\u5728\u5e94\u7528\u7a0b\u5e8f\u7684\u76ee\u5f55\u4e2d\u521b\u5efa\u4e00\u4e2aforms.py\u6587\u4ef6\uff0c\u4ee5\u521b\u5efa\u8868\u5355\u7c7b\u578b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">forms<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">.models<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Article<\/span>\r\n\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">ArticleForm<\/span><span class=\"p\">(<\/span><span class=\"n\">forms<\/span><span class=\"p\">.<\/span><span class=\"n\">ModelForm<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">class<\/span> <span class=\"nc\">Meta<\/span><span class=\"p\">:<\/span>\r\n        <span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Article<\/span>\r\n        <span class=\"n\">fields<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'__all__'<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e00\u4e2a\u5c4f\u5e55\u6a21\u677f<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!doctype html&gt;<\/span>\r\n<span class=\"nt\">&lt;title&gt;<\/span>django_practice<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n    <span class=\"nt\">&lt;form<\/span> <span class=\"na\">method=<\/span><span class=\"s\">\"post\"<\/span><span class=\"nt\">&gt;<\/span>\r\n        <span class=\"nt\">&lt;div&gt;<\/span>\r\n            {{ form.as_p\u3000}}\r\n            <span class=\"c\">&lt;!-- .as_p\u3067\u8981\u7d20\u3054\u3068\u306bP\u30bf\u30b0\u3067\u56f2\u3080--&gt;<\/span>\r\n        <span class=\"nt\">&lt;\/div&gt;<\/span>\r\n        <span class=\"nt\">&lt;button&gt;<\/span>\u4fdd\u5b58<span class=\"nt\">&lt;\/button&gt;<\/span> {% csrf_token %}\r\n    <span class=\"nt\">&lt;\/form&gt;<\/span>\r\n<span class=\"nt\">&lt;\/body&gt;<\/span>\r\n\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<p>\u5728views.py\u6587\u4ef6\u4e2d\u521b\u5efa\u4e00\u4e2a\u7ee7\u627fCreateView\u7684\u7c7b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">django.views.generic<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">CreateView<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">.models<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Article<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">.forms<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ArticleForm<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"nn\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">reverse_lazy<\/span>\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">ArticleCreateView<\/span><span class=\"p\">(<\/span><span class=\"n\">CreateView<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"s\">\"\"\"\r\n    \u65b0\u898f\u4f5c\u6210\r\n    \"\"\"<\/span>\r\n    <span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Article<\/span>\r\n    <span class=\"n\">form_class<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ArticleForm<\/span>\r\n    <span class=\"n\">success_url<\/span> <span class=\"o\">=<\/span> <span class=\"n\">reverse_lazy<\/span><span class=\"p\">(<\/span><span class=\"s\">'create'<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">template_name<\/span> <span class=\"o\">=<\/span> <span class=\"s\">'create.html'<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u6210\u529f\u7684URL #\u6307\u5b9a\u6570\u636e\u521b\u5efa\u6210\u529f\u540e\u8981\u8f6c\u5230\u7684\u4f4d\u7f6e\uff0c\u8bf7\u6307\u5b9a\u8def\u5f84\u51fd\u6570\u7684\u540d\u79f0\u90e8\u5206\u3002<\/p>\n<p>\u5728urls.py\u6587\u4ef6\u4e2d\uff0c\u5bfc\u5165\u4e4b\u524d\u521b\u5efa\u7684\u7c7b\uff0c\u5e76\u6307\u5b9aURL\u3002<\/p>\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\">.views<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">hellofunc<\/span><span class=\"p\">,<\/span> <span class=\"n\">render_test<\/span><span class=\"p\">,<\/span> <span class=\"n\">ArticleCreateView<\/span>\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\">'hello\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">hellofunc<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'render\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">render_test<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"n\">path<\/span><span class=\"p\">(<\/span><span class=\"s\">'create\/'<\/span><span class=\"p\">,<\/span> <span class=\"n\">ArticleCreateView<\/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\">'create'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>?django_practice\r\n \u2523 ?django_application\r\n \u2503 \u2523 ?admin.py\r\n \u2503 \u2523 ?apps.py \r\n \u2503 \u2523 ?forms.py #ArticleForm\u4f5c\u6210\r\n \u2503 \u2523 ?models.py\r\n \u2503 \u2523 ?tests.py\r\n \u2503 \u2523 ?urls.py\u3000#\u65b0\u3057\u304fview\u306e\u8aad\u307f\u8fbc\u307furl\u6307\u5b9a\r\n \u2503 \u2523 ?views.py #ArticleCreateView\u4f5c\u6210\r\n \u2523 ?django_practice\r\n \u2523 ?templates\r\n \u2503 \u2523 ?create.html #ArticleCreateView\u3067\u8868\u793a\u3059\u308b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4f5c\u6210\r\n \u2503 \u2517 ?test.html\r\n \u2523 ?db.sqlite3\r\n \u2517 ?manage.py\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>MTV\uff08\u6a21\u578b-\u6a21\u677f-\u89c6\u56fe\uff09\u7684\u7406\u5ff5 \u6a21\u7279\u513f \u6a21\u578b\u9700\u8981\u4e0e\u6570\u636e\u5e93\u8fdb\u884c\u534f\u4f5c\u7684\u6587\u4ef6\u3002 \u7528Django\u5236\u4f5c\u5e94\u7528\u7a0b\u5e8f\u65f6\u4f1a\u81ea\u52a8 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-49402","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>Django\u7684\u57fa\u7840 - 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\/django\u7684\u57fa\u7840\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django\u7684\u57fa\u7840\" \/>\n<meta property=\"og:description\" content=\"MTV\uff08\u6a21\u578b-\u6a21\u677f-\u89c6\u56fe\uff09\u7684\u7406\u5ff5 \u6a21\u7279\u513f \u6a21\u578b\u9700\u8981\u4e0e\u6570\u636e\u5e93\u8fdb\u884c\u534f\u4f5c\u7684\u6587\u4ef6\u3002 \u7528Django\u5236\u4f5c\u5e94\u7528\u7a0b\u5e8f\u65f6\u4f1a\u81ea\u52a8 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/django\u7684\u57fa\u7840\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-28T13:09:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T15:45:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/11-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \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\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/\",\"name\":\"Django\u7684\u57fa\u7840 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-28T13:09:15+00:00\",\"dateModified\":\"2024-04-28T15:45:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Django\u7684\u57fa\u7840\"}]},{\"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Django\u7684\u57fa\u7840 - 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\/django\u7684\u57fa\u7840\/","og_locale":"zh_CN","og_type":"article","og_title":"Django\u7684\u57fa\u7840","og_description":"MTV\uff08\u6a21\u578b-\u6a21\u677f-\u89c6\u56fe\uff09\u7684\u7406\u5ff5 \u6a21\u7279\u513f \u6a21\u578b\u9700\u8981\u4e0e\u6570\u636e\u5e93\u8fdb\u884c\u534f\u4f5c\u7684\u6587\u4ef6\u3002 \u7528Django\u5236\u4f5c\u5e94\u7528\u7a0b\u5e8f\u65f6\u4f1a\u81ea\u52a8 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/django\u7684\u57fa\u7840\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-28T13:09:15+00:00","article_modified_time":"2024-04-28T15:45:03+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8b38913a08637a6cccc6\/11-0.png"}],"author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/","name":"Django\u7684\u57fa\u7840 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-28T13:09:15+00:00","dateModified":"2024-04-28T15:45:03+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Django\u7684\u57fa\u7840"}]},{"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/django%e7%9a%84%e5%9f%ba%e7%a1%80\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49402","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=49402"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49402\/revisions"}],"predecessor-version":[{"id":65931,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49402\/revisions\/65931"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=49402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=49402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=49402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}