Django的学习笔记

news/2024/7/9 7:12:07

Django初笔记

  • 一、认识Django
    • 1.基本原理
    • 2.框架
  • 二、建立一个简单的项目
    • 1.建立一个HelloWord
      • (1)进入虚拟环境
      • (2)建立项目
  • 三、基本应用结构
    • (1)配置文件setting
    • (2)URL(路由系统)
    • (3)视图文件views
  • 四、模板显示内容
    • 1.建立一个templates文件夹
    • 2.在文件夹下面建立一个article_detail
    • 3.修改视图文件
  • 五、定制后台和修改模型

一、认识Django

1.基本原理

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。

2.框架

  • 用于创建模型的对象关系映射;
  • 为最终用户设计较好的管理界面;
  • URL 设计;
  • 设计者友好的模板语言;
  • 缓存系统。
    在这里插入图片描述

二、建立一个简单的项目

1.建立一个HelloWord

(1)进入虚拟环境

  • 快捷键:win + R
  • 输入命令:cmd
  • 注意:如果所建项目没在桌面,可以进入绝对路径输入命令cmd,直接进入绝对路径环境
    在这里插入图片描述

(2)建立项目

  • 建立项目的命令django-admin startproject helloWorld
  • 进入激活环境:activate dj
  • 转换路径,用cd 进入helloWorld
  • 在建立一个APP:python manage.py startapp mysite

三、基本应用结构

(1)配置文件setting

  • BASE_DIR:即为项目所在目录,__file__可以获得当前文件的路径,BASE_DIR的存在使我们项目的可移植性更强。
  • SECRET_KEY:一个特殊的Django安装的密钥,每当使用Django-admin startproject时会自动生成一个。
  • DUBUG:默认值为FALSE,当选择TRUE时,当我们的项目出错时可以使我们看到出错信息,但是为了防止被用户看到或者他人攻击,在项目上线后应改为FALSE。
  • ALLOWED_HOSTS:默认值是一个空列表,列表中的值为哪些域名可以访问我们的Django项目
  • INSTALLED_APPS:安装的APP列表,Django为我们默认添加了一些自带的项目,图片中Users是我自己创建的项目。我们自己创建的APP都要加入这个列表才可以被使用。
  • MIDDLEWARE:这是我们要使用的中间件的列表。
  • ROOT_URLCONF:表示根URLconf的完整Python导入路径的字符串。
  • TEMPLATES:这是对我们的template的选项,template用于存放我们的html文件。详细的选项可以参照DjangoTemplates官方文档。
  • LANGUAGE_CODE:Django项目的语言代码,默认值为en-us也就是英语,这里我选择的是zh-hans也就是我们的汉语。选择之后Django的admin界面就将变为汉语。
  • TIME_ZONE:时区,默认值是UTC。当USE_TZ为TRUE时,无论TZ设置为何值Django都会使用系统默认的时区,例如要使用上海的时区则需将USE_TZ=FALSE,TIME_ZONE=‘Asia/Shanghai’。
  • USE_I18N:国际化,Django允许开发者指定要翻译的字符串,也可以让访问者进行语言选择。
  • USE_L10N:是否选择启用数据的本地化。
  • USE_TZ:TimeZone,如果开启了Time Zone功能,则所有的存储和内部处理,甚至包括直接print显示全都是UTC的。只有通过模板进行表单输入/渲染输出的时候,才会执行UTC本地时间的转换。
  • 通过settings.py默认的选项进行设置就可以启动一个Django项目了,接下来是一些常用的选项。
  • STATIC_URL:静态目录的所有文件,存放css,js等文件。
  • STATICFILES_DIRS:将我们自己的static文件加入static路径。
  • MEDIA_URL:与STATIC_URL类似,存放用户上传的文件。
  • 加入安装的APP列表
    在这里插入图片描述

(2)URL(路由系统)

  • URL配置(URLconf)就像 Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
  • 在Django开发中,为使开发更加规范,通常在每个App中设置独立的静态资源和模板文件夹,并添加一个空白的urls.py文件,将属于App的URL都写入到该文件中,而项目根目录的urls.py是将每个App的urls.py统一管理。当程序收到用户请求时,首先在根目录的urls.py查找该URL是属于哪个App,然后在从App的urls.py找到具体的URL信息。
    在这里插入图片描述

(3)视图文件views

  • 一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。
  • 响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片…
  • 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。
  • 每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。
  • 视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)。
    在这里插入图片描述
  • 开启后台服务器:python manage.py runserver
    在这里插入图片描述
  • 访问服务器,运行结果:
    在这里插入图片描述

四、模板显示内容

1.建立一个templates文件夹

在这里插入图片描述

在这里插入图片描述

2.在文件夹下面建立一个article_detail

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>{{ article_obj.title }}</h2>
    <p>{{ article_obj.content }}</p>
</body>
</html>

3.修改视图文件

五、定制后台和修改模型


http://lihuaxi.xjx100.cn/news/321964.html

相关文章

为什么工业设计公司价格这么高?

随着经济的不断增长&#xff0c;各种工业设计公司逐渐出现&#xff0c;但价格不同&#xff0c;有些价格高&#xff0c;有些价格低&#xff0c;让一些人到处比较价格&#xff0c;低价格压低别人的高价格。有些人会想&#xff0c;为什么工业设计公司在设计产品时价格这么高&#…

探花交友_第3章_完善个人信息(新版)

探花交友_第3章_完善个人信息(新版) 文章目录探花交友_第3章_完善个人信息(新版)课程介绍1. 完善用户信息1.1 阿里云OSS1.1.1 概述1.1.2 账号申请购买服务创建Bucket1.1.3 抽取模板工具OssPropertiesOssTemplateTanhuaAutoConfiguration1.1.4 测试1.2 百度人脸识别1.2.1 概述1.…

2011-2019年全国30省绿色经济发展指数和子指数数据

2011-2019年全国30省绿色经济发展指数和子指数数据 1、时间&#xff1a;2011-2019年 2、来源&#xff1a;绿色发展指数BG——区域比较 3、范围&#xff1a;包括全国30个省份不包括西藏 4、指标包括&#xff1a;总指标—绿色化指数、经济增长绿化度指数、资源环境承载潜力指…

马上年末了,你还不会写测试总结吗?

最近参与了几次面试&#xff0c;面试者的简历中都会提及&#xff1a;需求或者版本测试结束后会进行测试总结&#xff0c;不仅仅提供一份测试报告以及相关文档手册。 于是特意追问了一下&#xff0c;测试总结中都包含什么内容。 答复上基本都是&#xff1a;执行了多少用例、发…

python简单实现网络爬虫

前言 在这一篇博客中&#xff0c;我会用python来实现一个简单的网络爬虫。简单的爬取一下一些音乐网站、小说网站的标题、关键字还有摘要&#xff01;所以这个爬虫并不是万能爬&#xff0c;只针对符合特定规则的网站使用。&#xff08;只使用于爬标题、关键字和摘要的&#xff…

[Mysql]数据库约束

文章目录前言1. 数据库约束1.1 not null1.2 unique1.3 primary key,主键约束1.4 default,设置默认值1.5 foreign key 外键约束前言 数据库约束,在实际应用中&#xff0c;由于某些特定的要求&#xff0c;例如学生的学号不能为空&#xff0c;学生表中的班级id,在班级表中要能存在…

【爬虫】力扣每日一题每天自动邮件提醒!!!

使用python实现了一个力扣每日一题每天自动邮件提醒的小爬虫&#xff0c;小但实用&#xff01;&#xff01;&#xff01; 文章目录A.需求来源与分析B.技术角度分析C.具体分析步骤1.接口协议分析2.发邮件3.写crontab放服务器上定时跑D.成品1.源代码2.效果3.使用说明免责申明A.需…

探花交友_第6章_圈子互动(新版)

探花交友_第6章_圈子互动&#xff08;新版&#xff09; 文章目录探花交友_第6章_圈子互动&#xff08;新版&#xff09;课程说明1. 动态查询1.1 查询好友动态1.1.1 接口文档1.1.2 代码步骤1.1.3 代码实现tanhua-app-server**MovementController****MovementService**tanhua-dub…