【基于Pycharm的Django3教程】Part1:初识Django

news2025/1/15 17:15:04

文章目录

  • 1 初识Django
    • 1.1 django的安装
    • 1.2 创建django项目
    • 1.3 两种创建方式的对比
    • 1.4 默认文件介绍
    • 1.5 APP的创建和说明
    • 1.6 启动运行django
    • 1.7 模板和静态文件
    • 1.8 模板语法
    • 1.9 请求和响应
    • 1.10 orm数据库操作
    • 1.11 ORM 数据库案例:用户管理

1 初识Django

1.1 django的安装

pip install django

1.2 创建django项目

  • cmd命令行创建
# 已经进行了环境变量配置
django-admin.exe startproject 项目名称
  • Pycharm 【需要专业版】

1.3 两种创建方式的对比

  • 命令行,创建的项目是比较标准的;
  • Pycharm,与命令行方式对比:
    • 增加了templates目录;【删除】
    • setting.py中,TEMPLATES = [{ ‘DIRS’: [’ ******* ']}] 【DIRS中的内容删除】

1.4 默认文件介绍

mysite

  • manage.py 【项目管理,启动项目、创建APP、数据管理】- 不修改,常用
  • mysite
    • __ init __.py
    • settings.py 【项目配置文件】- 常常操作
    • urls.py 【URL和函数的对应关系】- 常常操作
    • asgi.py 【接收网络请求「异步式」】- 不修改
    • wsgi.py 【接收网络请求「同步式」】- 不修改

1.5 APP的创建和说明

1. APP 的例子

  • 项目

    • app,用户管理 【表结构、函数、HTML模板、CSS】
    • app,订单管理 【表结构、函数、HTML模板、CSS】
    • app,后台管理 【表结构、函数、HTML模板、CSS】
    • app,网站 【表结构、函数、HTML模板、CSS】
    • app,API 【表结构、函数、HTML模板、CSS】

    注意,我们开发比较简洁,用不到多 APP ,通常情况下,项目创建一个 APP 即可。

2. 创建 APP,在终端输入:

python manage.py startapp app01

3. APP 默认文件介绍

  • app01
    • __ init __.py
    • admin.py【固定,不用动】 django默认提供了admin后台管理
    • apps.py 【固定,不用动】 app启动类
    • migrations 【固定,不用动】 数据库字段变更记录
      • __ init __.py
    • models.py重要】 对数据库进行操作
    • tests.py【固定,不用动】 单元测试
    • views.py重要】 函数

1.6 启动运行django

1. 注册 app 【setting.py】

在这里插入图片描述

2. 编写 URL 和视图函数的对应关系 【urls.py】

在这里插入图片描述

3. 编写视图函数 【views.py】

在这里插入图片描述

4. 启动 Django 项目

命令行启动

python manage.py runserver

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.7 模板和静态文件

1. templates 模板

在这里插入图片描述
在这里插入图片描述

2. 静态文件

在开发过程中,一般将 「图片、CSS、js」都会当作静态文件处理。

(1)在 app 目录下创建static文件夹

在这里插入图片描述

(2)引用静态文件
在这里插入图片描述

1.8 模板语法

1. 本质:在 HTML 中写一些占位符,由数据对这些占位符进行替换和处理。
在这里插入图片描述
在这里插入图片描述

2. 案例:伪联通新闻中心

(1)在 urls.py 创建函数的对应关系

在这里插入图片描述

(2)在 views 中编写函数

在这里插入图片描述

(3)在 templates 的 news.html 编写模板语法

在这里插入图片描述

(4)页面展示

在这里插入图片描述

1.9 请求和响应

1.

在这里插入图片描述

2. 案例:用户登录

(1)发生如下错误,只需要在 form 表单中伪造跨站请求 {% csrf_token %} 。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(2)最终代码:

在这里插入图片描述

(3)效果展示

在这里插入图片描述

在这里插入图片描述

1.10 orm数据库操作

ORM

  • 创建、修改、删除数据库中的表;(不用写SQL语句)【无法创建数据库】
  • 操作表中的数据(不用写SQL语句)。

在这里插入图片描述

1. 安装第三方库

pip install mysqlclient==1.4.1

2. 创建数据库

  • 首先在终端启动 mysql:
net start mysql
  • 登录 mysql(已经将初始密码设为 0 )
mysql -u root -p
  • 创建数据库(其中 gx 是数据库名称):
create database gx DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3. django 连接数据库

在 settings.py 文件中进行配置和修改。

更改默认 DATABASES :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 引擎
        'NAME': 'gx', # 数据库名字
        'USER': 'root', # 用户名
        'PASSWORD': '123456', # 密码
        'HOST': '127.0.0.1', # 哪台机器安装了MySQL - 本机
        'PORT': '3306',
    }
}

4. django 创建表

(1)在 models.py 文件中:

在这里插入图片描述

等同于:

create table app01_userinfo(
    id bigint auto_increment primary key, # django自动添加
    name varchar(32),
    password varchar(64),
    age int
)

(2)在 pycharm 终端输入,注意, app 需要提前注册:

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

至此,表已经创建成功。

在这里插入图片描述
在这里插入图片描述

5. django 修改表

(1) 删除某个列:

  • 注释该列;
  • 在 pycharm 终端输入:
python manage.py makemigrations
python manage.py migrate

(2)添加某个列:
- 在 python 代码中输入该列;
- 在 pycharm 终端输入:

python manage.py makemigrations
python manage.py migrate

(3)但是,对于 添加列 需要注意,由于已存在的列可能已有数据,所以新增列必须要指定对应的数据:

  • 选择 1,手动输入一个值;
  • 选择 2,回到代码设置默认值;
age = models.IntegerField(default=2)
  • 允许为空;
data = models.IntegerField(null=True, blank=True)

总结:对表结构进行调整

  • 在 models.py 文件中进行操作类;
  • 输入命令:
    python manage.py makemigrations
    python manage.py migrate

6. 操作表中的数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.11 ORM 数据库案例:用户管理

1. 展示用户列表

  • url;
  • 函数
    • 获取所有用户信息;
    • HTML 渲染;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 添加用户

  • url;
  • 函数
    • GET,看到页面,输入内容;
    • POST,提交,写入到数据库。

(1)在 urls.py 中添加 path:

在这里插入图片描述

(2)编写函数 info_add :

在这里插入图片描述

(3)编写 info_add.html ,注意要有 {% csrf_token %} ,使得跨站网址请求能够成功。

在这里插入图片描述
(4)效果展示

在这里插入图片描述在这里插入图片描述

3. 删除用户

  • url;
  • 函数

(1)在 urls.py 添加 path:

在这里插入图片描述

(2) 在 views.py 中编写相关代码:

在这里插入图片描述

(3)结果展示:(当然在 /info/list.html 中也做了修改)

在这里插入图片描述


参考资料:

  1. Windows安装mysql详细步骤(通俗易懂,简单上手)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

22 条 API 设计的最佳实践

在这个微服务的世界里,后端API的一致性设计是必不可少的。 今天,我们将讨论一些可遵循的最佳实践。我们将保持简短和甜蜜——所以系好安全带,出发咯! 首先介绍一些术语 任何API设计都遵循一种叫做“面向资源设计”的原则&#…

TOWER x Binance NFT 桥接教程

TOWER x Binance NFT 销售的 TOWER 门票和人物化身皮肤 NFT 现在可以从 BNB 链桥接到 Polygon 啦! 一起来看看如何将你的 TOWER x Binance NFT 从 BNB 链转移到 Polygon👇 1、到 BinanceNFT 用户中心提取你的 TOWER NFT 到 BNB Chain,然后等待…

html多个好看的背景动态效果(附源码)

文章目录1.设计来源1.1 图片轮动背景1.2 星空流星背景1.3 动态美女背景1.4 动态屋雨背景1.5 动态街道背景1.6 动态夜幕背景2.效果和源码2.1 动态效果2.2 透明度配置2.2 源代码源码下载作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/arti…

在线绘制富集分析多组气泡图和单细胞分析marker基因矩阵气泡图

常规的GO或者KEGG通路富集分析结果通常以气泡图的形式展示,然而这个气泡图仅仅是一个比较的结果,如果想在一张图上展示多个比较的结果,就需要用到多组气泡图(图1,左侧)。 单细胞RNA-seq分析结果中&#xf…

delphi异步与javascript

delphi及C Builder异步处理与javascript 目录 delphi及C Builder异步处理与javascript 1、用于实现异步事件、异步方法、及其异步结果回调的可自定义的通用类型 2、你可引用以下基于接口化对象和异步结果的接口的抽象类,去实现异步方法或异步事件的自定义类 2.…

关于DDoS攻击,这些基本概念你一定要知道!

什么是DDoS攻击 DDoS是Distributed Denial of Service的简称,中文是分布式拒绝服务。 这有点拗口吧? 这样,我们先理解下DDoS的前身DoS(Denial of Service),即拒绝服务。 最基本的DoS攻击就是攻击者利用…

基础--吊打面试官--精通synchronized底层实现原理

synchonized是一个字段 1.0之前太慢,重,jdk1.0后修改,变得轻.修改的原理是:以前是涉及到用户态和内核态的交互,现在是用户态实现。 基本概念理解: 用户态和内核态的概念:程序的不同级别。内核态…

Vue学习:事件处理(与用户产生交互-点击)

Vue对元素绑定事件&#xff0c;需要使用指令&#xff0c;也就是v-开头 v-on&#xff1a;当什么什么时候时候 点击-出现弹窗&#xff1a;使用method方法 <!-- 准备容器 --><div idroot> <h2>欢迎页面&#xff0c;你好 {{name}}</h2><!-- v-on:click…

(附源码)小程序 法律全书 毕业设计 280844

小程序spring boot法律全书管理系统 摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;小程序法律全书被用…

计算机毕业设计ssm+vue基本微信小程序的灾情救助系统 uniapp 小程序

项目介绍 自新冠疫情爆发以来,给各行各业带来了前所未有的挑战。国务院、党中央高度重视灾情救助工作,研究出一系列重要的措施和方法。并广泛利用信息化技术手段,对灾情信息发布、救助管理等进行管理。对于受灾地区来说,存在管理难度大,手段单一,灾民流动性复杂等问题。单靠人…

git 暂存当前分支修改,切换到别的分支

收藏&#xff0c;原文链接Git学习记录-git保留/丢弃当前分支修改并切换至其他分支 - 爱写bug的程序员 - 博客园 (cnblogs.com) 笔者在本地终端进行 git 工作目录的相关处理时&#xff0c;遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景。此时&#xff0c;若…

3 - 线程池 Java内置的线程池 - ExecutorService

1、ExecutorService的介绍 ExecutorService 接口继承了Executor 接口&#xff0c;是Executor 的子接口。 Executors类 提供工厂方法用来创建不同类型的线程池。Executors是工具类&#xff0c;他提供对ThreadPoolExecutor的封装&#xff0c;会产生几种线程池供大家使用。 关于…

derby 转 mysql

背景 nacos使用standalone方式启动&#xff0c;数据存储到内置的derby数据库中&#xff0c;现在要更改为集群启动&#xff0c;原数据要转成mysql。 执行过程 1.nacos内置的derby数据打包后放到本地 tar -cvf data.tar nacos/data/derby-data 2.通过idea添加Apache Derby&a…

【区块链】Ankr被黑引发的思考

机会 三明治交易、夹子机器人、抢跑、抢新、抢购、秒杀&#xff0c;相信这些词你都听说过了&#xff0c;区块链上的各种套利操作&#xff0c;基本上都有一个大前提&#xff0c;就是监听链上最新的未打包交易&#xff0c;才能在第一时间抢占先机。 前段时间Ankr被黑&#xff0…

进阶 - Git的自定义

Git的自定义 忽略特殊文件 有些时候&#xff0c;你必须把某些文件放到Git工作目录中&#xff0c;但又不能提交它们&#xff0c;比如保存了数据库密码的配置文件啦&#xff0c;等等&#xff0c;每次git status都会显示Untracked files ...&#xff0c;有强迫症的童鞋心里肯定不…

大学生网页制作期末作业——html+css+javascript+jquery旅游官网6页 html大学生网站开发实践作业 web网页设计实例作业

&#x1f468;‍&#x1f393;静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计&#x1f469;‍&#x1f393;&#xff0c;一般的网页作业需要融入以下知识点&#xff1a;div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

java alibaba fastjson自定义序列化反序列化(教你解决问题思路)

大家版本不一样方式可能不一样&#xff0c;我不管你的fastjson版本是哪个&#xff0c;按照我这个思路去弄就行 写一个JSONObject类&#xff0c;导入fastjson的JSONObject&#xff0c;然后CTRL鼠标左键点进去看JSONObject源码&#xff0c;然后点击IDEA的左上角select opened fil…

掘金量化如何精准选股?

说起掘金量化如何精准选股的这个问题&#xff0c;相信大家也很期待&#xff0c;就比如说我们在量化投资中&#xff0c;一方面对股票的涨跌是需要灵活的去判断&#xff0c;才能知晓这其中有哪些是我们应该选择的股票&#xff0c;但是要自己去观察&#xff0c;也是很麻烦&#xf…

【Python项目】毕业设计必备,Python基于面向对象+tkinter打造学生信息管理系统 | 附源码

前言 halo&#xff0c;包子们上午好 很多学计算机的小伙伴应该都知道&#xff0c;毕业设计是一个头疼的东西 今天的话小编这边给大家准备好了一个Python基于面向对象tkinter打造学生信息管理系统 这不是毕业设计必备项目 说实话操作起来还是有那么一点点的难度的&#xff0c;但…

Spring Boot源码学习:自动配置与自定义注解详解

入门 RestContrller :此注解标记的类下的 所有 方法均会返回一个 domain 对象以代替视图Controller、ResponseBody 的缩写使用 Jackson2 以及 MappingJackson2HttpMessageConverter 类自动转换对象为 JSONSpringBootApplication&#xff1a;快捷注释&#xff0c;包含以下内容C…