{"id":49525,"date":"2022-12-31T13:54:33","date_gmt":"2023-10-28T23:12:48","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/"},"modified":"2024-04-29T07:49:13","modified_gmt":"2024-04-28T23:49:13","slug":"%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/","title":{"rendered":"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb"},"content":{"rendered":"<h1>\u603b\u7ed3<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5148\u65e5\u3001\u521d\u3081\u3066Django\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u306e\u3067\u3001\u3053\u3053\u3067\u306f\u6700\u4f4e\u9650\u306e\u6e96\u5099\u304c\u3067\u304d\u308b\u72b6\u614b\u307e\u3067\u306e\u624b\u9806\u3092\u8a18\u3057\u3066\u304a\u304f\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u57fa\u672c\u7684\u306bdjango\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u898b\u3066\u5b9f\u65bd\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u7406\u89e3\u3092\u6df1\u3081\u308b\u305f\u3081\u306b\u81ea\u5206\u3067\u8abf\u3079\u305f\u3053\u3068\u3082\u8ffd\u8a18\u3057\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>\u306f\u3058\u3081\u3066\u306e Django \u30a2\u30d7\u30ea\u4f5c\u6210\u3001\u305d\u306e 1<\/p>\n<h1>\u73af\u5883<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MacBookPro<\/ul>\n<\/li>\n<\/ul>\n<p>macOS\uff1aMonterey<br \/>\n\u30c1\u30c3\u30d7\uff1a\u3000Apple M1 Pro<br \/>\n\u30e1\u30e2\u30ea\uff1a\u300016GB<\/p>\n<p>Django\uff1aVersion 4.1.3<\/p>\n<h1>\u5b89\u88c5Django<\/h1>\n<ul class=\"post-ul\">Django\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u65bd<\/ul>\n<pre class=\"post-pre\"><code>python -m pip install Django\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3061\u306a\u307f\u306b\u3001\u3069\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\u30b3\u30de\u30f3\u30c9\u306f\u4ee5\u4e0b<\/ul>\n<\/li>\n<\/ul>\n<p>\u4eca\u56de\u306f 4.1.3 \u3068\u51fa\u3066\u304f\u308b<\/p>\n<pre class=\"post-pre\"><code>python -m django --version\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u3001\u30b3\u30fc\u30c9\u3092\u7f6e\u304d\u305f\u3044\u5834\u6240\u306b cd \u3057\u3066\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>mysite\u306e\u3068\u3053\u308d\u306f\u305d\u306e\u90fd\u5ea6\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3054\u3068\u306b\u30a2\u30ec\u30f3\u30b8\u3059\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001mysite\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u306b\u3001\u30d5\u30a1\u30a4\u30eb\u304c\u81ea\u52d5\u3067\u751f\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>django-admin startproject mysite\r\n<\/code><\/pre>\n<h1>\u786e\u8ba4 Django \u9879\u76ee\u662f\u5426\u6b63\u5e38\u8fd0\u884c<\/h1>\n<ul class=\"post-ul\">\u5916\u5074\u306e mysite \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u304c\u3067\u304d\u305f\u3089\u4e0b\u8a18\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3001\u30ed\u30fc\u30ab\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code>python manage.py runserver\r\n<\/code><\/pre>\n<p>\u53ea\u8981\u4e0b\u8ff0\u5185\u5bb9\u88ab\u8f93\u51fa\uff0c\u5c31\u6ca1\u6709\u95ee\u9898\u3002<br \/>\n\uff08\u8fd9\u91cc\u5ffd\u7565\u4e86\u672a\u5e94\u7528\u6570\u636e\u5e93\u8fc1\u79fb\u7684\u8b66\u544a\u3002\u8fd9\u6761\u4fe1\u606f\u662f\u56e0\u4e3a\u9ed8\u8ba4\u8bbe\u7f6e\u7684\u8fc1\u79fb\u4fe1\u606f\u672a\u5728\u6570\u636e\u5e93\u4e2d\u5e94\u7528\u800c\u663e\u793a\u7684\u6d88\u606f\u3002\uff09<\/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 18 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\nDecember 06, 2022 - 09:37:36\r\nDjango version 4.1.3, using settings 'mysite.settings'\r\nStarting development server at http:\/\/127.0.0.1:8000\/\r\nQuit the server with CONTROL-C.\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5f15\u6570\u306b\u3001IP\u30a2\u30c9\u30ec\u30b9\u3068\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f runserver \u30b3\u30de\u30f3\u30c9\u306f\u5185\u90e8 IP \u306e\u30dd\u30fc\u30c8 8000 \u3067\u8d77\u52d5\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>\u30d6\u30e9\u30a6\u30b6\u3067django\u306e\u30da\u30fc\u30b8\u304c\u51fa\u3066\u304f\u308c\u3070OK<\/p>\n<pre class=\"post-pre\"><code>python manage.py runserver 8080\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ruby on rails\u3068\u306e\u9055\u3044\uff1a<\/ul>\n<\/li>\n<\/ul>\n<p>rails\u3067\u306f\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u5b9f\u884c\u53ef\u80fd\u306arails\u30b3\u30de\u30f3\u30c9\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002\u4f8b\u3048\u3070Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092local\u3067\u7acb\u3061\u4e0a\u3052\u308b\u6642\u306f\u3001rails s\u3068\u3044\u3063\u305f\u5f62\u3067\u3059\u3002\u305f\u3060\u3001django\u306e\u5834\u5408\u306f\u3001python\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u3093\u3067\u3042\u3052\u308b\u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u306a\u306e\u3067\u3001rails\u6163\u308c\u3066\u3044\u308b\u3068\u3061\u3087\u3063\u3068\u9055\u548c\u611f\u304c\u3042\u308b\u304b\u3082\u3067\u3059<\/p>\n<h1>\u521b\u5efa\u5e94\u7528\u7a0b\u5e8f<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u308b\u306b\u306f\u3001 manage.py \u3068\u540c\u3058\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5165\u3063\u3066\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>polls \u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b\u30b3\u30de\u30f3\u30c9<\/p>\n<pre class=\"post-pre\"><code>python manage.py startapp polls\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u6ce8\u610f\u70b9\u3068\u3057\u3066\u3001django\u3067\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u306b\u8907\u6570\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\uff08\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff09\u3092\u4f5c\u6210\u3067\u304d\u308b\u70b9\u304c\u3042\u308b\u3002\u8aa4\u3063\u3066\u5148\u8ff0\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u3002<\/ul>\n<h1>MVT\u6a21\u578b\u662f\u4ec0\u4e48\uff1f<\/h1>\n<p>Django\u306e\u5834\u5408\u3001MVT(Model View Template)\u3068\u547c\u79f0\u3055\u308c\u308b\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u5229\u7528\u3057\u307e\u3059\u3002Rails\u3084Laravel\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u308bMVC\u30e2\u30c7\u30eb\u3068\u610f\u5473\u306f\u307b\u307c\u540c\u3058\u3067\u3059\u304c\u3001\u3084\u3084\u3053\u3057\u3044\u306e\u306fController\u306e\u5f79\u5272\u3092View\uff08\u3068URL\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1\u30e3\uff09\u3067\u62c5\u3044\u3001View\u306e\u5f79\u5272\u3092Template\u3067\u62c5\u3046\u3068\u3053\u308d\u3002View\u304c\u9055\u3046\u3082\u306e\u3092\u6307\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u8981\u6ce8\u610f\u3067\u3059\u3002<\/p>\n<p>MVC\u30e2\u30c7\u30eb\u306e\u9b45\u529b\u306f\u3001\u4ed6\u306e\u8a18\u4e8b\u3067\u305f\u304f\u3055\u3093\u7d39\u4ecb\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u30c1\u30fc\u30e0\u3067\u5206\u62c5\u3057\u3066\u4f5c\u696d\u3067\u304d\u305f\u308a\u3001\u4e00\u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u5909\u66f4\u304c\u4ed6\u306b\u5f71\u97ff\u3092\u53ca\u307c\u3059\u3053\u3068\u304c\u5c11\u306a\u304b\u3063\u305f\u308a\u3068\u3044\u3063\u305f\u70b9\u304c\u3088\u304f\u6319\u3052\u3089\u308c\u308b\u70b9\u3067\u3059\u3002<\/p>\n<p>\u3053\u3061\u3089\u306e\u8a18\u4e8b\u3067\u306f\u3001\u521d\u5fc3\u8005\u306b\u3082\u308f\u304b\u308a\u3084\u3059\u304f\u3001MVT\u30e2\u30c7\u30eb\u306e\u3053\u3068\u304c\u7d39\u4ecb\u3055\u308c\u3066\u3044\u307e\u3059<\/p>\n<p>\u3010Django\u3011\u300cMTV\uff08Model \u2013 Template \u2013 View)\u300d\u3063\u3066\u4f55\uff1f\u300cMVC\u300d\u3068\u4f55\u304c\u9055\u3046\uff1f<\/p>\n<h1>\u8bbe\u7f6e\u8def\u7531\uff08\u4f7f\u7528URLconf\u8fdb\u884c\u7ed1\u5b9a\uff09<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u3064\u3044\u3066\u306f\u3001\u3053\u3061\u3089\u306e\u8a18\u4e8b\u304c\u5206\u304b\u308a\u3084\u3059\u304b\u3063\u305f\u306e\u3067\u53c2\u8003\u306b\u3057\u3066\u3044\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306eurls.py\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306eurls.py\u3001\u3069\u3061\u3089\u3082\u8a2d\u5b9a\u3057\u3066\u3042\u3052\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>\u53c2\u8003\uff1a\u3010Django\u3011urls.py\uff1a\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u66f8\u304d\u65b9<\/p>\n<h2>\u9879\u76ee\u76ee\u5f55\u4e0b\u7684urls.py\u662f\u4ec0\u4e48\uff1f<\/h2>\n<p>\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u9001\u3089\u308c\u308bHTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u5bfe\u3057\u3066\u3001\u3069\u306e\u30da\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u304b\u3068\u3044\u3046\u6307\u793a\u3092\u3059\u308b\u305f\u3081\u306b\u3001\u30ea\u30b9\u30c8\u578b\u3067\u300cURL\u300d\u3068\u5b9f\u884c\u3059\u308b\u300c\u95a2\u6570\u307e\u305f\u306f\u30af\u30e9\u30b9\u300d\u3092\u6307\u5b9a\u3059\u308b<\/p>\n<p>django\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u300c\u30eb\u30fc\u30c8\u306eurls.py\u300d\u3068\u547c\u3070\u308c\u3066\u3044\u307e\u3059<br \/>\n\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3068\u3044\u3046\u610f\u5473\u3067\u306f\u3001Rails\u3067\u3044\u3046routes.rb\u3067\u3059\u306d<br \/>\n\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u7ba1\u7406\u753b\u9762\u306e\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3067\u3042\u308bpath(&#8216;admin\/&#8217;, admin.site.urls)\u306e\u307f\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b<br \/>\n\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eurls.py\u3068\u9023\u7d50\u3059\u308b\u5834\u5408\u306f\u3053\u308c\u306b\u8a18\u8ff0<br \/>\npath\u95a2\u6570\u306e\u5f15\u6570\u306b\u306froute\uff08URL \u30d1\u30bf\u30fc\u30f3\u3092\u542b\u3080\u6587\u5b57\u5217\uff09\u3068view\uff08views.py\u306e\u95a2\u6570\u3084\u30af\u30e9\u30b9\uff09\u3092\u6307\u5b9a\u3002\u3053\u306e\u4e8c\u3064\u306f\u5fc5\u9808\u3002\u305f\u3060\u3057\u3001path\u95a2\u6570\u306fdjango4\u4ee5\u524d\u306furl\u95a2\u6570\u3092\u4f7f\u3063\u3066\u3044\u305f\u305f\u3081\u3001\u53e4\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u5f15\u3063\u5f35\u3063\u3066\u304f\u308b\uff08\u4f7f\u7528\u3059\u308b\uff09\u6642\u306f\u8981\u6ce8\u610f\u3002<br \/>\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306eurls.py\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5185\u306eurls.py\u3092\u6307\u5b9a\u3059\u308b\u5834\u5408\u306f\u3001\u7b2c\u4e8c\u5f15\u6570\u306binclude\u95a2\u6570\u3092\u4f7f\u3046\u3053\u3068\u304c\u591a\u3044\u3002\u4f8b\u3048\u3070\u3001path(&#8221;, include(&#8216;polls.urls&#8217;))\u306e\u3088\u3046\u306b\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001polls\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308burls.py\u3092\u6307\u5b9a\u3067\u304d\u308b\u3002<br \/>\npath\u95a2\u6570\u306e\u7b2c\u4e09\u5f15\u6570\u306ename\uff08URL\u540d\u79f0\uff09\u3084\u7b2c\u56db\u5f15\u6570\uff08kwargs\uff09\u306f\u4efb\u610f\u3002<br \/>\n\u3061\u306a\u307f\u306b\u3001&#8217;\/&#8217;\u3068URL\u306b\u5165\u308c\u308c\u3070\u4efb\u610f\u306e\u6574\u6570\u3067\u3042\u3063\u3066\u3082\u30d2\u30c3\u30c8\u3059\u308b<\/p>\n<p>path\u95a2\u6570\uff08\u65e7url\u95a2\u6570\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"n\">URL<\/span><span class=\"p\">,<\/span> <span class=\"n\">\u95a2\u6570\u307e\u305f\u306f\u30af\u30e9\u30b9<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"n\">URL\u540d\u79f0<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">mysite\/urls.py\u306e\u66f8\u304d\u65b9\u306e\u4f8b\uff08\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eurls.py\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.contrib<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">admin<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"n\">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<span class=\"n\">urlpatterns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">admin\/<\/span><span class=\"sh\">'<\/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=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">polls\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"nf\">include<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">polls.urls<\/span><span class=\"sh\">'<\/span><span class=\"p\">)),<\/span><span class=\"c1\"># polls.urls\u3067\u6307\u5b9a\u3055\u308c\u305fviews.py\u306e\u95a2\u6570template_name\u306b\u3042\u308bindex.html\u3092\u8aad\u307f\u8fbc\u3080\u3002view.py\u3084template\u306b\u3064\u3044\u3066\u306f\u5f8c\u8ff0\r\n<\/span>    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">''<\/span><span class=\"p\">,<\/span> <span class=\"nf\">include<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">polls.urls<\/span><span class=\"sh\">'<\/span><span class=\"p\">)),<\/span> <span class=\"c1\"># \u3053\u308c\u3092\u52a0\u3048\u308b\u3068\u30eb\u30fc\u30c8\u30d1\u30b9\u3067\u3082index.html\u304c\u8aad\u307f\u8fbc\u307e\u308c\u308b\r\n<\/span><span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<h2>\u5e94\u7528\u7a0b\u5e8f\u76ee\u5f55\u4e2d\u7684urls.py\u662f\u4ec0\u4e48\uff1f de urls.py sh\u00ec ?)<\/h2>\n<p>\u30d3\u30e5\u30fc\u3092\u547c\u3076\u305f\u3081\u306b\u3001 urlpatterns\u3068\u3044\u3046\u5909\u6570\u306b\u3001\u30ea\u30b9\u30c8\u578b\u3067\u300cURL\u300d\u3068\u5b9f\u884c\u3059\u308b\u300c\u95a2\u6570\u307e\u305f\u306f\u30af\u30e9\u30b9\u300d\u3092\u6307\u5b9a\u3059\u308b<\/p>\n<p>\u81ea\u52d5\u3067\u4f5c\u6210\u3055\u308c\u308b\u3082\u306e\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u81ea\u5206\u3067\u624b\u52d5\u3067\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<br \/>\ndjango\u306f\u4e0a\u304b\u3089\u9806\u756a\u306b\u30de\u30c3\u30c1\u3059\u308b\u30d1\u30b9\u3092\u63a2\u3059<\/p>\n<p>polls\/urls.py\u306e\u66f8\u304d\u65b9\u306e\u4f8b\uff08\u30a2\u30d7\u30ea\u306eurls.py\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"n\">.<\/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=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">''<\/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=\"sh\">'<\/span><span class=\"s\">index<\/span><span class=\"sh\">'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<h1>\u7f16\u8f91models.py\u6587\u4ef6\u5e76\u6267\u884c\u6570\u636e\u5e93\u8fc1\u79fb\u3002<\/h1>\n<p>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3068\u306f\u3001Django \u3067\u30e2\u30c7\u30eb\u306b\u5bfe\u3057\u3066\u884c\u3063\u305f\u5909\u66f4 (\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u8ffd\u52a0\u3084\u30e2\u30c7\u30eb\u306e\u7de8\u96c6\u306a\u3069) \u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b9\u30ad\u30fc\u30de\u306b\u53cd\u6620\u3055\u305b\u308b\u3053\u3068\u3002\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b9\u30ad\u30fc\u30de\u306b\u5bfe\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>\u624b\u9806\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<\/p>\n<p>models.py\u4e0a\u306e\u30af\u30e9\u30b9\u5b9a\u7fa9\u3092\u5909\u66f4\u3059\u308b<\/p>\n<p>\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u3069\u306e\u3088\u3046\u306a\u30c7\u30fc\u30bf\u578b\u3092\u8a18\u61b6\u3055\u305b\u308b\u304b\u3092\u8a18\u8f09<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u306b\u3088\u308a\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/p>\n<p>python manage.py makemigrations<\/p>\n<p>model.py\u306e\u5185\u5bb9\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u53cd\u6620\u3055\u305b\u308b\u305f\u3081\u306e\u4e2d\u9593\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u3002\u521d\u56de\u306e\u30c7\u30fc\u30bf\u3068\u3001\u305d\u308c\u306b\u3064\u3089\u306a\u308b\u4e00\u9023\u306e\u5dee\u5206\u30c7\u30fc\u30bf\u3067\u69cb\u6210\u3055\u308c\u308b\u3002<br \/>\n\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u306b\u3088\u308a\u3001\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c<\/p>\n<p>python manage.py migrate<\/p>\n<p>models.py\u306e\u66f8\u304d\u65b9\u306e\u4f8b<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.db<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">models<\/span>\r\n\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">Question<\/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\">question_text<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"nc\">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\">pub_date<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"nc\">DateTimeField<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">date published<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\r\n\r\n\r\n<span class=\"k\">class<\/span> <span class=\"nc\">Choice<\/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\">question<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"nc\">ForeignKey<\/span><span class=\"p\">(<\/span><span class=\"n\">Question<\/span><span class=\"p\">,<\/span> <span class=\"n\">on_delete<\/span><span class=\"o\">=<\/span><span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"n\">CASCADE<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">choice_text<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"nc\">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\">votes<\/span> <span class=\"o\">=<\/span> <span class=\"n\">models<\/span><span class=\"p\">.<\/span><span class=\"nc\">IntegerField<\/span><span class=\"p\">(<\/span><span class=\"n\">default<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u4fee\u6539 views.py \u6587\u4ef6\u5e76\u521b\u5efa\u6a21\u677f\u3002<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">templates \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u81ea\u5206\u3067\u4f5c\u6210\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Django \u306b\u6b63\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u8a8d\u8b58\u3055\u305b\u308b\u7c21\u5358\u306a\u65b9\u6cd5\u306e\u4e00\u3064\u306f\u3001\u540d\u524d\u7a7a\u9593\u3092\u4e0e\u3048\u308b\u3053\u3068<\/ul>\n<\/li>\n<\/ul>\n<p>templates \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4e0b\u306b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u540c\u3058\u540d\u524d\u3092\u4ed8\u3051\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u7528\u610f\u3057\u3066\u305d\u3053\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7f6e\u3051\u3070 [app-name]\/index.html \u3068\u3044\u3046\u540d\u524d\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3054\u3068\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u8a8d\u8b58\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b<\/p>\n<p>render() \u95a2\u6570\u3068\u306f<\/p>\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ed\u30fc\u30c9\u3057\u3066\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u5024\u3092\u5165\u308c\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3057\u305f\u7d50\u679c\u3092 HttpResponse \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3067\u8fd4\u3059\u3001\u3068\u3044\u3046\u30a4\u30c7\u30a3\u30aa\u30e0\u306f\u975e\u5e38\u306b\u3088\u304f\u4f7f\u308f\u308c\u308b\u305f\u3081\u3001\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u304c\u3042\u308b\u3002<br \/>\n\u7b2c1\u5f15\u6570\u3068\u3057\u3066 request \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u3001\u7b2c2\u5f15\u6570\u3068\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d\u3092\u3001\u7b2c3\u5f15\u6570\uff08\u4efb\u610f\uff09\u3068\u3057\u3066\u8f9e\u66f8\u3092\u53d7\u3051\u53d6\u308b<br \/>\n\u4f8b\u3048\u3070\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u63db\u3067\u304d\u308b<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.http<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">HttpResponse<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"n\">django.template<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">loader<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"n\">.models<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Question<\/span>\r\n\r\n\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\">latest_question_list<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Question<\/span><span class=\"p\">.<\/span><span class=\"n\">objects<\/span><span class=\"p\">.<\/span><span class=\"nf\">order_by<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">-pub_date<\/span><span class=\"sh\">'<\/span><span class=\"p\">)[:<\/span><span class=\"mi\">5<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"n\">template<\/span> <span class=\"o\">=<\/span> <span class=\"n\">loader<\/span><span class=\"p\">.<\/span><span class=\"nf\">get_template<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">polls\/index.html<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">context<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"sh\">'<\/span><span class=\"s\">latest_question_list<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"n\">latest_question_list<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"nc\">HttpResponse<\/span><span class=\"p\">(<\/span><span class=\"n\">template<\/span><span class=\"p\">.<\/span><span class=\"nf\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">context<\/span><span class=\"p\">,<\/span> <span class=\"n\">request<\/span><span class=\"p\">))<\/span>\r\n<\/code><\/pre>\n<p>\u8bf7\u5c06\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u672c\u5730\u5316\u4e2d\u6587\u6539\u5199\uff1a<\/p>\n<p>\u2193\u2193\u2193<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.shortcuts<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">render<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"n\">.models<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Question<\/span>\r\n\r\n\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\">latest_question_list<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Question<\/span><span class=\"p\">.<\/span><span class=\"n\">objects<\/span><span class=\"p\">.<\/span><span class=\"nf\">order_by<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">-pub_date<\/span><span class=\"sh\">'<\/span><span class=\"p\">)[:<\/span><span class=\"mi\">5<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"n\">context<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span><span class=\"sh\">'<\/span><span class=\"s\">latest_question_list<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span> <span class=\"n\">latest_question_list<\/span><span class=\"p\">}<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"nf\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">request<\/span><span class=\"p\">,<\/span> <span class=\"sh\">'<\/span><span class=\"s\">polls\/index.html<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">context<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h1>\u5728\u547d\u540d\u7a7a\u95f4\u4e2d\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528URL\u8def\u5f84\u8fdb\u884c\u6307\u5b9a\u3002<\/h1>\n<p>polls.urls \u30e2\u30b8\u30e5\u30fc\u30eb \u306e path() \u95a2\u6570\u3067 name \u5f15\u6570\u3092\u5b9a\u7fa9\u3059\u308c\u3070\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30bf\u30b0\u306e {\uff05url\uff05} \u3092\u4f7f\u7528\u3057\u3066\u3001URL \u8a2d\u5b9a\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u7279\u5b9a\u306e URL \u30d1\u30b9\u3078\u306e\u4f9d\u5b58\u3092\u306a\u304f\u3059\u3053\u3068\u304c\u3067\u304d\u308b<\/p>\n<p>\u4ee5\u4e0b\u306f\u4f8b\uff1a<\/p>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;li&gt;&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\/polls\/{{ question.id }}\/\"<\/span><span class=\"nt\">&gt;<\/span>{{ question.question_text }}<span class=\"nt\">&lt;\/a&gt;&lt;\/li&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u8bf7\u539f\u8c05\u6211\u7684\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;li&gt;&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'detail' question.id %}\"<\/span><span class=\"nt\">&gt;<\/span>{{ question.question_text }}<span class=\"nt\">&lt;\/a&gt;&lt;\/li&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u8bf7\u7528\u6c49\u8bed\u5c06\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u518d\u8868\u8ff0\uff0c\u53ea\u9700\u63d0\u4f9b\u4e00\u4e2a\u9009\u9879\uff1a\u2193\u2193\u2193<\/p>\n<ul class=\"post-ul\">URL \u540d\u306e\u540d\u524d\u7a7a\u9593\uff08namespacing\uff09\uff1a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30a9\u30eb\u30c0\u306eurls.py\u3067app name\u3092\u5b9a\u3081\u308b\u3068\u3088\u3044\u3002\u305d\u3046\u3059\u308c\u3070\u3001polls\u4ee5\u5916\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u4f5c\u3089\u308c\u3066\u3082django\u304c\u8b58\u5225\u3067\u304d\u308b\u305f\u3081\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;li&gt;&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"{% url 'polls:detail' question.id %}\"<\/span><span class=\"nt\">&gt;<\/span>{{ question.question_text }}<span class=\"nt\">&lt;\/a&gt;&lt;\/li&gt;<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"kn\">from<\/span> <span class=\"n\">django.urls<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">path<\/span>\r\n\r\n<span class=\"kn\">from<\/span> <span class=\"n\">.<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">views<\/span>\r\n\r\n<span class=\"n\">app_name<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">'<\/span><span class=\"s\">polls<\/span><span class=\"sh\">'<\/span>\r\n<span class=\"n\">urlpatterns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\r\n    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">''<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">IndexView<\/span><span class=\"p\">.<\/span><span class=\"nf\">as_view<\/span><span class=\"p\">(),<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">index<\/span><span class=\"sh\">'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">&lt;int:pk&gt;\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">DetailView<\/span><span class=\"p\">.<\/span><span class=\"nf\">as_view<\/span><span class=\"p\">(),<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">detail<\/span><span class=\"sh\">'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">&lt;int:pk&gt;\/results\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">ResultsView<\/span><span class=\"p\">.<\/span><span class=\"nf\">as_view<\/span><span class=\"p\">(),<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">results<\/span><span class=\"sh\">'<\/span><span class=\"p\">),<\/span>\r\n    <span class=\"nf\">path<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">&lt;int:question_id&gt;\/vote\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">views<\/span><span class=\"p\">.<\/span><span class=\"n\">vote<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"sh\">'<\/span><span class=\"s\">vote<\/span><span class=\"sh\">'<\/span><span class=\"p\">),<\/span>\r\n<span class=\"p\">]<\/span>\r\n<\/code><\/pre>\n<p>\u540d\u524d\u7a7a\u9593\u3068\u3044\u3046\u8003\u3048\u65b9\u306f\u3001\u9759\u7684 (static) \u30d5\u30a1\u30a4\u30eb\u3067\u3082\u540c\u3058\u3067\u3001templates\u306e\u6642\u3068\u540c\u69d8namespacing\u3057\u3066\u304a\u3051\u3070\u3001django\u304c\u691c\u7d22\u3057\u3066\u304f\u308c\u308b\u3002<\/p>\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u3064\u3044\u3066\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30b7\u30b9\u30c6\u30e0\u3084\u6c4e\u7528\u30d3\u30e5\u30fc\u306a\u3069\u304c\u3042\u308b\u306e\u3067\u3001\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb3\u4ee5\u964d\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002\u4eca\u56de\u306f\u3001\u6700\u4f4e\u9650\u306e\u6e96\u5099\u306e\u3068\u3053\u308d\u307e\u3067\u3068\u3057\u307e\u3059\u3002\u5f15\u304d\u7d9a\u304d\u52c9\u5f37\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u603b\u7ed3 \u5148\u65e5\u3001\u521d\u3081\u3066Django\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u306e\u3067\u3001\u3053\u3053\u3067\u306f\u6700\u4f4e\u9650\u306e\u6e96\u5099\u304c\u3067\u304d\u308b\u72b6\u614b\u307e\u3067\u306e\u624b\u9806\u3092\u8a18\u3057\u3066\u304a\u304f\u3002 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-49525","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>\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb - 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\/\u3010django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1amvt\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001vi\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb\" \/>\n<meta property=\"og:description\" content=\"\u603b\u7ed3 \u5148\u65e5\u3001\u521d\u3081\u3066Django\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u306e\u3067\u3001\u3053\u3053\u3067\u306f\u6700\u4f4e\u9650\u306e\u6e96\u5099\u304c\u3067\u304d\u308b\u72b6\u614b\u307e\u3067\u306e\u624b\u9806\u3092\u8a18\u3057\u3066\u304a\u304f\u3002 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u3010django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1amvt\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001vi\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-28T23:12:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T23:49:13+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\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\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/\",\"name\":\"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-10-28T23:12:48+00:00\",\"dateModified\":\"2024-04-28T23:49:13+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb\"}]},{\"@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\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb - 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\/\u3010django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1amvt\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001vi\/","og_locale":"zh_CN","og_type":"article","og_title":"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb","og_description":"\u603b\u7ed3 \u5148\u65e5\u3001\u521d\u3081\u3066Django\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u306e\u3067\u3001\u3053\u3053\u3067\u306f\u6700\u4f4e\u9650\u306e\u6e96\u5099\u304c\u3067\u304d\u308b\u72b6\u614b\u307e\u3067\u306e\u624b\u9806\u3092\u8a18\u3057\u3066\u304a\u304f\u3002 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u3010django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1amvt\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001vi\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-10-28T23:12:48+00:00","article_modified_time":"2024-04-28T23:49:13+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/","name":"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-10-28T23:12:48+00:00","dateModified":"2024-04-28T23:49:13+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3010Django\u521d\u6b21\u5b89\u88c5\u3011\u6b65\u9aa4\uff1aMVT\u6a21\u578b\u3001\u8def\u7531\u3001\u6570\u636e\u5e93\u8fc1\u79fb\u3001views.py\u3001\u6a21\u677f\u3001\u547d\u540d\u7a7a\u95f4\u7b80\u4ecb"}]},{"@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\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90django%e5%88%9d%e6%ac%a1%e5%ae%89%e8%a3%85%e3%80%91%e6%ad%a5%e9%aa%a4%ef%bc%9amvt%e6%a8%a1%e5%9e%8b%e3%80%81%e8%b7%af%e7%94%b1%e3%80%81%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%81%e7%a7%bb%e3%80%81vi\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49525","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=49525"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49525\/revisions"}],"predecessor-version":[{"id":83978,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/49525\/revisions\/83978"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=49525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=49525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=49525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}