安装流程
cd C:\Users\yasuo\Desktop\py
python -m venv ll_envll_env\Scripts\activatedeactivatell_env\scripts\python.exe -m pip install --upgrade pippip3 install Djangodjango_admin startproject learning_log .dir learning_logpython manage.py migratepython manage.py runserver

动手试一试

观察以上过程产生的文件和文件夹
db.sqlite3 SQLite使用单个文件的数据库
manage.py 类似与main();
settings.py指定Django如何与你的系统交互以及管理项目
urls.py告诉Django应该创建哪些网页来响应浏览器请求。
wsgi.py帮助Django提供他创建的文件。web server gateway interface缩写

创建超级用户

python manage.py createsuperuser

定义模型

模型告诉Django如何处理应用程序中储存的数据。在代码层,模型就是一个类型和每一个类一样,包含属性和方法。
model.py


```python
class Topic(models.Model):
    '''用户学习的主题'''
    text = models.CharField(max_length=200)//CharField储存少量的文本,且必须预留相应的空间,单位是字符。
    date_added = models.DateTimeField(auto_now_add=True)//记录当前时间

    def __str__(self):
        '''返回模型的字符串表示'''
        return self.text

激活模型
打开settings.py,将learning_logs加入到INSTALLED_APPS中。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # 我的应用
    'learning_logs'
]

模型修改三部曲

python manage.py makemigrations learning_logspython manage.py migrate

Django shell

启动 python manage.py shell

18章3.1小节.映射URL

由于Django更新

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),# 该模块定义了可在管理网站中请求的所有URL
    path('', include('learning_logs.urls', namespace='learning_logs')), 
    # 代码包含实参namespace , 让我们能够将learning_logs 的URL同项目中的其他URL区分开来
]
'''
Django版本更新,书上的代码需做相应修改

书中源代码:
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('learning_logs.urls', namespace='learning_logs')),
]
应改为:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls', namespace='learning_logs')),
]

'''

learning_logs/urls.py

"""定义learning_logs的URL模式"""
from django.urls import path,re_path
from . import views

app_name='learning_logs' # 不能少 ,否则runserver的时候就会出错

# https://docs.djangoproject.com/en/2.2/ref/urls/#module-django.urls.conf
urlpatterns = [
    # 主页
    path('', views.index, name='index'),# Django将在文件views.py中查找函数index()
]

# urls -> views -> html  添加网页步骤

'''
Django版本更新,书上的代码需做相应修改

书中源代码:
from django.conf.urls import url
from . import views
urlpatterns = [
     # Home page.
    url(r'^$', views.index, name='index'),

    # Show all topics.
    url(r'^topics/$', views.topics, name='topics'),

    # Detail page for a single topic.
    url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
]

应改为:
from django.urls import path
from . import views

app_name='learning_logs'
urlpatterns = [
    # 主页
    path('', views.index, name='index'),

    # 显示所有的主题
    path('topics/', views.topics, name='topics'),

    # 特定主题的详细页面
    path("topics/(?P<topic_id>\d+)/", views.topic, name='topic'),
]

'''

19.2登录页面

from django.urls import path,include
from django.contrib.auth.views import LoginView
from django.contrib.auth import logout,login,authenticate
from . import views
app_name = 'users'
LoginView.template_name = 'users/login.html'
urlpatterns = [
    #登录页面
    path('login/',LoginView.as_view(),name='login'),
    #注销
    path('logout/',views.logout_view,name='logout'),
    #注册
    path('register/',views.register,name='register'),
    ]

在部署到heroku遇到的问题

import os

至此项目问题结束。