django 学习(二)—— 第一个demo


安装django后,在../python37/Scripts/目录下会多出django-admin.exe文件。

 cmd下输入:django-admin

 这里罗列出django提供的命令

1.使用startproject创建项目

cmd:django-admin startproject guest_test   # 创建guest_test项目

目录结构:

 guest_test/__init__.py:一个空的文件,用它标识一个目录为Python的标准包

 guest_test/settings.py:Django项目的配置文件,包括Django模块应用配置、数据库配置、模板配置等。

 guest_test/urls.py:Django项目的URL声明

 guest_test/wsgi.py:与WSGI兼容的Web服务器,为你的项目提供服务的入口点

 manage.py:一个命令行工具,可以让你在使用Django项目时以不同的方式进行交互。

2.进入guest_test项目,查看manage提供的命令

cmd:cd guest_test

     python manage.py   # 查看manage所提供的命令

3.使用startapp创建应用

cmd:python manage.py startapp sign   # 创建sign应用

目录结构:

 migrations/:用于记录models中数据的变更

 admin.py:映射models中的数据到Django自带的admin后台

 apps.py:用于应用程序的配置,在新的Django版本中新增文件

 models.py:Django的模型文件,创建应用程序数据表模型(对应数据库的相关操作)

 tests.py:创建Django测试用例

 views.py:Django的视图文件,控制向前端页面显示的内容

4.使用runserver运行项目

cmd:python manage.py runserver 

python manage.py runserver 127.0.0.1:8001

5.在web页面上打印 hello django

  • 配置guest_test/settings.py文件,将sign应用添加到项目中

  

   计划通过index/ 路径来显示“hello django”,需要配置路径

  • guest_test子目录下通过urls.py文件定义URLconf,添加/index/的路由配置  

  

   但此时views中没有index属性,所以接下来要创建index函数

  • 打开../sign/views.py文件

  定义index函数,并通过HttpResponse类向客户端(浏览器)返回字符串“hello django”

  HttpResponse 类在 django.http.HttpResponse 中,以字符串的形式传递给客户端。

  

  •  重新启动项目

  cmd: python manage.py runserver 127.0.0.1:8001

 6.使用模板(通过html页面代替“hello django”)

  • sign/ 目录下创建templates/index.html文件

  

  •  修改视图文件views.py中的index函数

   这里抛弃HttpResponse类,转而使用Django的render函数。request为请求对象,“index.html”为返回给客户端的HTML页面。

  注:

  render()

  此方法的作用---结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象

  通俗的讲就是把context的内容, 加载进templates中定义的文件, 并通过浏览器渲染呈现.

  help文档中render描述

  render(request, template_name, context=None, content_type=None, status=None, using=None)

  参数:

  request: 是一个固定参数

  template_name: templates中定义的文件,注意路径名。比如:"templates/polls/index.html", 则参数这样写:"polls/index.html"

  context: 要传入文件中用于渲染呈现的数据, 默认是字典格式

  content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值。

  status: http的响应代码,默认是200.

  using: 用于加载模板使用的模板引擎的名称。

  • render()函数传递context来填充模板

  

   

   刷新浏览器

7.django工作流: