文章目录

  • 零、本讲学习目标
  • 一、课程导入
    • (一)Web框架
    • (二)WSGI
  • 二、新课讲授
    • (一)使用内置指令创建Django项目
      • 1、主要文件
        • (1)manage.py
        • (2)init.py
        • (3)asgi.py
        • (4)settings.py
        • (5)urls.py
        • (6)wsgi.py
      • 2、创建项目应用
        • (7)migrations
        • (8)`__init__`. py
        • (9)admin.py
        • (10)apps.py
        • (11)models.py
        • (12)tests.py
        • (13)views.py
      • 3、启动项目,查看效果
      • 4、任务:显示欢迎信息 - Welcome to Django World
        • (1)在项目配置文件里注册应用
        • (2)在路由配置文件里定义路由分发
        • (3)在应用里创建子路由文件 - urls.py
        • (4)在应用视图文件里定义视图函数
        • (5)在子路由文件里定义路由
        • (6)启动应用,查看效果
      • 5、任务:显示欢迎页面 - welcome.html
        • (1)创建templates目录,在项目配置文件里配置模板目录
        • (2)在templates目录里创建welcome.html页面
        • (3)在index应用的视图文件里创建视图函数
        • (4)在index应用的路由文件里添加路由
        • (5)启动应用,查看效果
    • (二)使用PyCharm创建Django项目
      • 1、新建Django项目
      • 2、项目目录结构
      • 3、创建应用(功能模块)
      • 4、启动项目,查看结果
      • 5、进入Django自带的后台管理
  • 三、课堂小结
  • 四、课后作业

零、本讲学习目标

  1. 识记创建Django项目的命令
  2. 识记创建app的命令
  3. 识记起动项目的命令
  4. 掌握命令行创建Django项目
  5. 掌握PyCharm创建Django项目

一、课程导入

(一)Web框架

  • Web框架(Web Framework)或者叫做Web应用框架(Web Application Framework),是用于Web开发的一套软件架构。大多数Web框架提供了一套开发和部署网站的方式,为Web的行为提供了一套支持的方法。使用Web框架,很多业务逻辑外的功能不需要自己再去处理,使用框架就可以实现。Web框架在进行Web应用开发的时候,减少了工作量。Web框架主要用于动态网站开发。动态网站主要是指可以实现数据交互和业务功能的网站。

(二)WSGI

  • Python Web Server Gateway Interface,即Python Web服务器网关接口,实际上就是一种协议,我们的应用(Django、Flask)实现了WSGI,就可以配合实现了WSGI(uWSGI、gunicorn)的服务器工作了。

二、新课讲授

(一)使用内置指令创建Django项目

  • 创建目录D:\django,然后进入该目录
  • 创建Django项目 - MyDjango
  • 执行命令D:\django>django-admin startproject MyDjango
  • 在资源管理器里查看项目的目录结构

  • 在PyCharm里打开刚才创建的MyDjango项目

1、主要文件

MyDjango项目里包含MyDjango文件夹和manage.py文件,而MyDjango文件夹又包含5个py文件。项目的每个文件说明如下:

(1)manage.py

  • 命令行工具,内置多种方式与项目进行交互。在命令提示符窗口下,将路径切换到MyDjango项目并输入python manage.py help,可以查看该工具的指令信息。
  • 查看manage.py文件内容

(2)init.py

  • 初始化文件,一般情况下无须修改。默认内容为空。

(3)asgi.py

  • 用于启动异步通信服务,比如实现在线聊天等异步通信功能。

(4)settings.py

  • 项目的配置文件,项目所有功能都需要在该文件中进行配置,后续讲课笔记里会详述配置说明。
"""
Django settings for MyDjango project.Generated by 'django-admin startproject' using Django 3.2.6.For more information on this file, see
https://docs.djangoproject.com/en/3.2/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.2/ref/settings/
"""from pathlib import Path# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-=)l20vaci&22z$g!yr8h1k-dbqtt4$c9-zb$@afl8)*-w8&9(f'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]ROOT_URLCONF = 'MyDjango.urls'TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]WSGI_APPLICATION = 'MyDjango.wsgi.application'# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databasesDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/STATIC_URL = '/static/'# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

(5)urls.py

  • 项目的路由设置,设置网站的具体网址内容。

(6)wsgi.py

  • 全称为Python Web Server Gateway Interface,即Python服务器网关接口,是 Python应用与Web服务器之间的接口,用于Django项目在服务器上的部署和上线,一般不需要修改。
  • 从Django 3.0开始,新建的项目都会创建asgi.py文件,这是将异步通信服务纳入Django的内置功能,也是Diango 3.0的新特性之一。ASGI是异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP, HTTP2和WebSocket。
  • WSGI是基于HTTP协议模式,但它不支持WebSocket,而ASGI则是为了解决WSGI不支持当前Web开发中一些新的协议标准(比如WebSocket)。同时, ASGI不仅支持WSGI原有的模式,而且还支持使用WebSocket,简单来说,ASGI是WSGI的功能扩展。
  • __pycache__目标是存放缓存数据的。

2、创建项目应用

  • 完成项目的创建后,接着创建项目应用,项目应用简称为App,相当于网站功能,每个App代表网站的一个功能。App的创建由文件manage.py实现。
  • 创建index功能模块:python manage.py startapp index

  • 从上图可以看到,项目新建了index文件夹,其可作为网站首页。在index文件夹中可以看到有多个.py文件和migrations文件夹,说明如下:

(7)migrations

  • 用于生成数据迁移文件,通过数据迁移文件可自动在数据库里生成相应的数据表。文件夹中的__init__.py默认是空的。

(8)__init__. py

  • index文件夹的初始化文件。默认是空的。

(9)admin.py

  • 用于设置当前App的后台管理功能

(10)apps.py

  • 当前App的配置信息,在Django 1.9版本后自动生成,一般情况下无须修改。

(11)models.py

  • 定义数据库的映射类每个类可以关联一张数据表,实现数据持久化,即MTV里面的模型(Model)。

(12)tests.py

  • 自动化测试的模块,用于实现单元测试。

(13)views.py

  • 视图文件,处理功能的业务逻辑,即MTV里面的视图(View

3、启动项目,查看效果

  • 执行命令:python manage.py runserver 8001

  • 以上错误提示,不影响项目的执行,但可以根据提示做下处理。

  • 再执行下命令:python manage.py migrate

  • 再次启动项目:python manage.py runserver 8001

  • 在浏览器里访问:http://localhost:8001/http://127.0.0.1:8001/

4、任务:显示欢迎信息 - Welcome to Django World

(1)在项目配置文件里注册应用

  • 在项目的settings.py文件的INSTALLED_APPS列表里添加新创建的应用 - index

(2)在路由配置文件里定义路由分发

  • 在项目的urls.py文件里的urlpatterns列表里添加路由

(3)在应用里创建子路由文件 - urls.py

(4)在应用视图文件里定义视图函数

  • 创建视图函数 - hello - 通过HttpResponse返回一个字符串

(5)在子路由文件里定义路由

  • 从主路由到子路由,从子路由到视图函数

(6)启动应用,查看效果

  • 在端口8088启动服务,执行命令:python manage.py runserver 8088
  • 浏览器访问http://127.0.0.1:8088/index/hello
  • 修改主路由文件,做成下列效果
  • 再修改子路由文件,做成下列效果
  • 练习:用红色的三级标题来显示欢迎信息(HttpResponse接受包含HTML标签的字符串作为参数)

5、任务:显示欢迎页面 - welcome.html

(1)创建templates目录,在项目配置文件里配置模板目录

(2)在templates目录里创建welcome.html页面

(3)在index应用的视图文件里创建视图函数

(4)在index应用的路由文件里添加路由

  • 总路由 ⇒\Rightarrow⇒ 子路由 ⇒\Rightarrow⇒ 视图 ⇒\Rightarrow⇒ 模板

(5)启动应用,查看效果

  • 在端口8088启动服务
  • 访问http://127.0.0.1:8088/welcome

(二)使用PyCharm创建Django项目

  • 注意:专业版才有此功能,社区版无此功能

1、新建Django项目

  • 设置项目位置与项目名称 - MyDjango

2、项目目录结构

  • 比命令行创建多了templates目录

3、创建应用(功能模块)

  • 在终端执行命令:`python manage.py startapp index

  • 发生错误,需要在setting.py文件中引入os

  • 再次创建应用 - index

4、启动项目,查看结果

  • 利用工具栏按钮启动项目

  • 在终端执行迁移
  • 访问http://127.0.0.1:8000

5、进入Django自带的后台管理

  • Django初始化admin账号和密码:python manage.py createsuperuser

  • 访问http://127.0.0.1:8000/admin

  • 输入管理员用户名与密码

  • 单击【Log in】按钮

  • 可以添加和修改组与用户

三、课堂小结

  1. 命令行创建Django项目的基础步骤
  2. Pycharm创建Django项目的基础步骤

四、课后作业

  1. 在自己电脑上使用命令方式创建Django项目(显示个人信息)
  2. 在自己电脑上使用PyCharm方式创建Django项目(显示个人信息)
  3. 个人信息采用表格来显示
  • 学号:20210301
  • 姓名:李宏伟
  • 性别:男
  • 年龄:19
  • 专业:软件技术专业
  • 班级:20级软件3班
  • 电话:15890904567

Django讲课笔记03:创建Django项目相关推荐

  1. Django讲课笔记04:Django项目的调试

    文章目录 零.本讲学习目标 一.课程导入 二.新课讲授 (一)PyCharm运行命令创建的Django项目 1.打开第03讲里的MyDjango项目 2.配置Django Server 3.通过工具栏 ...

  2. Django讲课笔记06:搭建项目开发环境

    文章目录 零.本讲学习目标 一.课程导入 二.新课讲授 (一)创建Django项目 - babies (二)新建应用 - index (三)创建应用 - commodity (四)创建应用 - sho ...

  3. Django讲课笔记02:Django环境搭建

    文章目录 零.本讲学习目标 一.课程导入 (一)BSD.MVC.MVT (二)Django特点 二.新课讲授 (一)相关概念 1.Web框架 2.WSGI 3.两级结构 4.三级结构 5.反向代理的好 ...

  4. Django学习手册 - 创建Django工程项目以及APP

    前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的 ...

  5. Django讲课笔记01:Django简介

    文章目录 零.本讲学习目标 一.课程导入 (一)课程简介 (二)课程概述 二.新课讲授 (一)Django简介 (二)Django版本 (三)Django与Python的对应关系 (四)Django的 ...

  6. Django实践-03模型-01表生成模型+学科页面与教师页面编写

    文章目录 Django实践-03模型 Django MTV之模型 投票案例 1.创建应用 1.创建应用 2.配置模板文件 2.配置关系型数据库MySQL 1.创建数据库 2.创建表 3.按照MySQL ...

  7. 创建Django项目和模型(创建工程、子应用、设置pycharm环境、使用Django进行数据库开发的步骤)

    1.创建Django项目 文档:Writing your first Django app, part 1 | Django documentation | Django 步骤 创建Django项目 ...

  8. django orm级联_第 03 篇:创建 Django 博客的数据库模型

    HelloGitHub-Team 成员--追梦人物 设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把 ...

  9. 使用PyCharm创建Django项目及基本配置

    https://segmentfault.com/a/1190000011576316 pycharm是个很不错的python开发工具,大大缩短了python项目的创建时间以及调试时间 在使用pyth ...

最新文章

  1. java开发组态软件下载_基于JAVA的煤矿安全监控系统组态软件设计研究.pdf
  2. php 分割二维数组,拆分二维数组 php
  3. windows10环境tensorflow下载安装
  4. java常见经典知识点汇总
  5. matlab求解集合覆盖问题,Set Cover Problem (集合覆盖问题)
  6. clickhouse分布式DDL查询
  7. 计算机考研网络复试总结
  8. 计算机的格式刷,“excle怎样取消格式刷“电脑上格式刷怎么用excel2000
  9. svn 文件夹没有绿勾红感叹号图标
  10. 干货 | 关于SwiftUI,看这一篇就够了
  11. Java数组初始化长度
  12. pl2303hxa串口线驱动_MAX232和PL2303_CH340的区别
  13. 淘宝每天自动领取金币/京东每天自动领取金豆/苏宁打卡获取云钻
  14. 龙之翼java游戏_龙之翼游戏下载-龙之翼最新版下载v1.0.3-一听下载站
  15. 人工智能 计算机科学的一个分支,人工智能是计算机科学一个分支(28页)-原创力文档...
  16. 采购协议内容有哪些?
  17. Eclipse + Tomcat 配置
  18. Fabric 1.0源代码分析(42)scc(系统链码) #cscc(通道相关)
  19. 文件文档怎么按类型自动分类保存?
  20. [亲情]那个深爱我的男子

热门文章

  1. 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法
  2. 【华为云技术分享】当我们在谈论卡片时,我们到底在谈论什么?
  3. 【华为云技术分享】Linux内核发展史 (2)
  4. 使用python读取word文件里的表格信息
  5. 贝叶斯思维 统计建模的python_贝叶斯思维统计建模的Python学习法
  6. java 模块化基础
  7. python字符串查找某个字符_python的字符串
  8. 【docker】win10子系统ubuntu安装docker
  9. c fun函数求n个整数的平均值_c语言题目(求阶乘)
  10. 在哪里买铁甲格斗机器人_铁甲雄心Ⅱ火了 优必选“超变铁甲”掀起闯关赢免单热潮...