【Django入门】学习笔记01

Django介绍###

  • Django是一个基于Python的高级Web开发框架
  • 它能够让开发人员进行高效且快速的开发
  • 高度集成,方便开发

正常上网流程###

打开浏览器->向目标URL发送一个HTTP请求->服务器把页面响应给浏览器

浏览网页的基本原理###

本质是网络通信,即通过网络进行数据传递
浏览器经过通信后获取到该页面的源代码文档
浏览器解析文档后以适当的形式展示给用户

网络响应流程

编辑器推荐####

  • Pycharm
  • Sublime Text,Atom

Django项目开发

创建项目

  • 打开命令行,进入想要安置项目的目录
  • 命令行输入
django-admin startproject YourProjectName

项目目录结构

项目目录结构
查看可用命令(在manage.py当前目录下执行)

python manage.py

目录(这里为myblog目录)

  • 项目的一个容器
  • 包含项目最基本的一些配置
  • 目录名称不建议修改

项目目录介绍###

wsgi.py

  • WSGI(Web Server Gateway Interface)
  • Python服务器网关接口
    urls.py
    -url配置文件
    settings.py
  • 项目总配置文件
  • 包含数据库、Web应用、时间等各自配置
    init_.py
  • Python中声明模块的文件
  • 内容默认为空

创建应用###

  • 打开命令行,进入项目中manage.py同级目录
  • 命令行输入
python manage.py startapp YourAppName
  • 添加应用名到setting.py中的INSTALLED_APPS
    注意:应用名不能与已有名称重复,否则会报错

migrations

  • 数据移植(迁移)模块
  • 内容自动生成不需要管它

admin.py

  • 该应用的后台管理系统配置

apps.py

  • 应用的配置文件

models.py

  • 数据模块
  • 使用ORM框架

tests.py

  • 测试脚本

views.py

  • 执行响应代码所在模块
  • 代码逻辑处理的主要地点
  • 主要写代码的地方

创建页面####

编辑blog.views

  • 每个响应对应一个参数,函数必须返回一个响应
  • 函数必须存在一个参数,一般约定为request
  • 每个响应(函数)对应一个URL

配置URL####

编辑urls.py

  • 每个URL都以url形式写出
  • url函数放在urlpatterns列表中
  • url函数的参数根据提示写,一般常用为三个:URL、对应方法、名称
    包含其他URL
  • 在根urls.py中引入include
  • app目录下创建urls.py文件,根式与根urls.py相同
  • 根urls.py中url函数第二个参数改为include(YourAppName.urls')

配置Templates####

Templates介绍#####
  • 一种HTML文件
  • 使用了Django模板语言(DTL)
  • 可以使用第三方模板(修改setting.py中TEMPLATE选项的BACKEND)
配置过程#####
  • 在APP目录下创建Templates目录
  • 在该目录下创建HTML文件
  • 在views.py中返回render()
DTL的使用#####
  • render()函数中支持一个dict类型参数
  • 该字典是后台传递到模板的参数,键为参数名
  • 在模板中使用{{参数名}}来直接使用

注意:
Django是按照INSTALLED_APPS中添加顺序查找Templates
因此不同APP下Templates目录中的同名html文件会造成冲突。

所以需要在APP的Templates目录下创建以APP名为名称的目录
将html文件放入新创建的目录下面

Models###

Models介绍####

  • 一个Model对应数据库的一张数据表
  • Django中Models以类的形式表现,包含一些基本字段和数据的一些行为
ORM(对象关系映射)#####
  • 实现了对象和数据库之间的映射
  • 隐藏了数据访问的细节,不需要编写SQL语句
步骤#####
  • 在应用根目录下创建models.py,并引入models模块
  • 创建类,继承models.Model,即类是一张数据表
  • 在类中创建字段
字段创建#####
  • 字段即类里面的属性(变量)
attr = models.CharField(max_length=64)
生成数据表#####
  • 在命令行中执行命令
python manage.py makemigrations YourAppName(可选)
  • 再次执行
python manage.py migrate
查看移植内容#####
  • app/migrations/ 下会有移植文件
  • 查看sql语句,执行
python manage.py sqlmigrate YourAppName FileId
  • 查看并编辑bd.sqlite3
    可以使用第三方软件 SQLite Expert Personal

页面呈现数据####

  • views.py中 from . import models
  • 输入
value = models.Article.objects.get(pk=1)
return render(request,page,{'article':value})
  • 在html文档可以直接使用对象以及对象的“.”操作
article.title

(未完待续)

posted @ 2020-02-28 23:07  是水泵呢  阅读(237)  评论(0编辑  收藏  举报