跟老齐学Django 1
https://www.djangoproject.com/
pip install Django==1.11.1
import django
print(django.get_version())
创建一个Django项目:django-admin startproject mysite
python3 manage.py runserver
创建应用:python3 manage.py startapp blog
manage.py是对django-admin的简单封装
./mysite/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
./blog/models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
# Create your models here.
class BlogArticles(models.Model):
title = models.CharField(max_length=300)
author = models.ForeignKey(User, related_name="blog_posts", on_delete=models.DO_NOTHING)
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
class Meta:
ordering = ("-publish",)
def __str__(self):
return self.title
创建数据库表的文件:python3 manage.py makemigrations
python3 manage.py sqlmigrate blog 0001
真正创建数据库:python3 manage.py migrate
创建超级管理员:python3 manage.py createsuperuser
python3 manage.py runserver
发布文章:./blog/admin.py
from django.contrib import admin
from .models import BlogArticles
# Register your models here.
admin.site.register(BlogArticles) #将类加入当前环境
http://127.0.0.1:8000/admin/blog/blogarticles/ 添加文章
pip3 install pytz 用于django.utils.timezone
./blog/admin.py
from django.contrib import admin
from .models import BlogArticles
# Register your models here.
class BlogArticlesAdmin(admin.ModelAdmin):
list_display = ("title", "author", "publish")
list_filter = ("publish", "author")
search_fields = ("titles", "body")
raw_id_fields = ("author",)
date_hierarchy = "publish"
ordering = ['publish', 'author']
admin.site.register(BlogArticles, BlogArticlesAdmin)
显示博客信息
./blog/views.py
from django.shortcuts import render
from .models import BlogArticles
# Create your views here.
def blog_title(request):
blogs = BlogArticles.objects.all()
return render(request, "blog/titles.html", {"blogs":blogs})
mysite/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls', namespace="blog")),
]
blog/urls.py
from django.conf.urls import url, re_path
from . import views
app_name = 'blog'
urlpatterns = [
#url(r'^$', views.blog_title, name="blog_titles")
re_path('$', views.blog_title, name="blog_titles")
]