Tutorial
https://tutorial.djangogirls.org 中文版的教程的Django版本是1.8的,英文版的教程的Django版本是2.1的
Practice
https://github.com/janetat/Djangogirls_tutorial
Notes
新建项目
django-admin startproject mysite
settings.py -> TIME_ZONE, STATIC_ROOT, DATABASES
python manage.py migrate
python manage.py runserver
新增app
python manage.py startapp blog
settings.py -> INSTALLED_APPS 加入'blog'
Django 模型
blog/models里面创建一个模型,例如Post
# 在blog/migrations的文件夹里生成了一个数据库迁移文件
python manage.py makemigrations blog
# 应用这个数据库迁移文件,此时更新数据库
python manage.py migrate blog
Django后台管理
# 创建super user超级用户
python manage.py createsuperuser
# 为了能在后台页面管理Post模型,在blog/admin.py那注册模型
from django.contrib import admin
from .models import Post
admin.site.register(Post)
# 访问admin后台页面
127.0.0.1/admin
Django URL + View + Template
1.8版本和2.1版本的mysite/urls.py设置路由的方式不同
1.8默认的是regex path
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('blog.urls')),
]
2.1也可以用regex path
from django.contrib import admin
from django.urls import path, re_path
urlpatterns = [
# path('admin/', admin.site.urls),
re_path('^admin/', admin.site.urls),
]
正式开始
# mysite/urls.py
from django.contrib import admin
from django.urls import path, re_path, include
urlpatterns = [
path('admin/', admin.site.urls),
# re_path(r'^admin/', admin.site.urls),
# to keep the mysite/urls.py file clean,import URLs from our blog application to the main mysite/urls.py file
path('', include('blog.urls'))
]
# /blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list')
]
# /blog/views.py
from django.shortcuts import render
# Create your views here.
def post_list(request):
return render(request, 'blog/post_list.html', {})
// blog/templates/blog/post_list.html
<html>
<head>
<title>Allen's blog</title>
</head>
<body>
<h1>Hello Wolrd!</h1>
</body>
</html>