Python2.7 + Django 1.11
运行网上一个例子,怎么也同步不了。请高人指点一下。
工程名mysite, app name 是blog
mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
]
mysite 目录与blog目录同级
blog/urls.py
from django.conf.urls import url
from blog import views
urlpatterns = [
url(r'^$', views.archive),
url(r'^create/', views.create),
]
blog/templates/archive.html
<!-- archive.html -->
<!-- archive.html -->
<form action="/blog/views/create/" method="post">
Title:
<input type=text name=title><br>
Body:
<textarea name=body rows=3 cols=60></textarea><br>
<input type=submit>
</form>
<hr>
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.timestamp }}</p>
<p>{{ post.body }}</p>
<hr>
{% endfor %}
blog/models.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=150)
body = models.TextField()
timestamp = models.DateTimeField()
class Meta:
ordering = ('-timestamp',)
# Create your models here.
blog/views.py
# -*- coding: utf-8 -*-
# code for django 1.11
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader, Context
from blog.models import BlogPost
# Create your views here.
from datetime import datetime
from django.shortcuts import render_to_response
from blog.models import BlogPost
def archive(request):
posts = BlogPost.objects.all()[:10]
return render_to_response('archive.html', {'posts': posts})
def create(request):
if request.method == 'POST':
BlogPost(
title=request.POST.get('title'),
body=request.POST.get('body'),
timestamp=datetime.now(),
).save()
return HttpResponseRedirect('/blog/')
运行总是报错:
Page not found (404)
Request Method: POST
Request URL: http://localhost:8080/blog/views/create/
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^blog/ ^$
^blog/ ^create/
^admin/
The current path, blog/views/create/, didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.