视图介绍和项目准备

视图介绍

  • 视图就是应用views.py文件中的函数
  • 视图的第一个参数必须为HttpRequest对象,还可能包含下参数如
    • 通过正则表达式组获取的位置参数
    • 通过正则表达式组获得的关键字参数
  • 视图必须返回一个HttpResponse对象子对象作为响应
    • 子对象:JsonResponse HttpResponseRedirect
  • 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者
    • 响应内容可以是HTML内容404错误重定向json数据 ...
  • 视图处理过程如下图:

使用视图时需要进行两步操作,两步操作不分先后

  1. 配置 URLconf
  2. 应用/views.py 中定义视图

项目准备

  • 创建项目+创建应用+安装应用+配置模板路径+本地化+mysql数据库+URLconf+视图

  • mysql数据库使用之前的Bookdb

     DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql', # 数据库引擎
             'NAME': 'Bookdb', # 数据库名称
             'HOST': 'localhost', # 数据库主机(建议使用主机真实IP)
             'PORT': '3306', # 数据库端口
             'USER': 'root', # 数据库用户名
             'PASSWORD': 'mysql', # 数据库密码
         }
     }
    
  • URLconf

    • settings.py中:指定url配置

        ROOT_URLCONF = 'BookManager.urls'
      
    • 项目中urls.py:只要不是admin/就匹配成功,包含到应用中的urls.py

       urlpatterns = [
           url(r'^admin/', include(admin.site.urls)),
      
           # 只要不是‘admin/’就匹配成功,包含到应用中的urls.py
           url(r'^', include('Book.urls')),
       ]
      
    • 应用中urls.py:匹配testproject/成功就调用views中的testproject函数,测试项目逻辑

        from django.conf.urls import url
        import views
      
        urlpatterns = [
            # 匹配`testproject/`成功就调用`views`中的`testproject`函数
            url(r'^testproject/$', views.testproject),
        ]
      
    • 视图:测试项目逻辑

        from django.http import HttpResponse
      
        # 测试项目逻辑
        def testproject(request):
            return HttpResponse('测试项目逻辑')