当前位置: 首页 > news >正文

Django学习——基础篇(上)

一、Django的安装

pip install django

python目录下出现两个文件
djando-admin.exe
django

django-admin.exe

django-admin.exe

django

在这里插入图片描述

二、创建项目

1.命令行(终端)

1.打开终端

win+R
输入cmd

2.进入项目目录
在这里插入图片描述
3.执行命令创建项目
在这里插入图片描述
在这里插入图片描述

2.Pycharm

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

两种方法对比

1.命令行创建的项目更标准
2.pycharm创建的项目比命令行多了两样东西【需要删掉】
·创建了templates目录
·settings.py中
在这里插入图片描述
在这里插入图片描述

默认文件

在这里插入图片描述

三、创建app

python manage.py startapp [appname]

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

显示所有目录

tree /F

在这里插入图片描述
在这里插入图片描述
├─app01
│ │—admin.py【固定,不用动】django默认提供了admin后台管理。
│ │—apps.py【固定,不用动】app启动类
│ │—models.py【 ** 重要 ** 】,对数据库操作。
│ │—tests.py【固定,不用动】单元测试
│ │—views.py【 ** 重要 ** 】,函数。
│ │—__ init __.py
│ │
│ └─migrations【固定,不用动】数据库变更记录
│ __ init __.py

└─mysite1
│—asgi.py
│—settings.py
│—urls.py【URL->函数】
│—wsgi.py
│— __ init __.py

四、启动运行django

1、确保app已注册【settings.py】

在【settings.py】中的 INSTALLED_APPS 中添加:
在这里插入图片描述
参考【apps.py】中的类名:
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

4、启动django项目

1.命令行启动

python manage.py runserver

在这里插入图片描述

2.pycharm启动
在这里插入图片描述

3.运行
在这里插入图片描述
在这里插入图片描述

5、再写一个页面

-url --> 函数
-函数

在这里插入图片描述

五、模板和静态文件

1、templates 模板

在【views.py】中:
在这里插入图片描述
创建【templates】文件夹和【user_list.html】:
在这里插入图片描述
在这里插入图片描述

2、静态文件【static】

在开发过程中一般将:图片、css、js都会当做静态文件处理。
1.static目录
在app目录下创建static文件夹
在这里插入图片描述
2.引用静态文件
在这里插入图片描述

在这里插入图片描述

六、django的模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

【urls.py】文件
from django.urls import path
from app01 import viewsurlpatterns = [path('tpl/', views.tpl),
]
【views.py】文件
from django.shortcuts import render, HttpResponse, redirect
def tpl(request):name = "布莱克"roles = ["光明守护者", "邪灵二当家", "战联副队"]user_info = {"name": "布莱克", 'friend': "索兰特", 'role': "夜魔之神"}data_list = [{"name": "布莱克", 'attribute': "暗影系", 'role': "夜魔之神"},{"name": "卡修斯", 'attribute': "地暗影系", 'role': "大地之神"},{"name": "雷伊", 'attribute': "电系", 'role': "雷神"},{"name": "盖亚", 'attribute': "战斗系", 'role': "战神"},{"name": "缪斯", 'attribute': "超能系", 'role': "赤瞳"},]return render(request, "tpl.html", {"n1": name, "n2": roles, "n3": user_info, "n4": data_list})
【tpl.html】文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>模板语法的学习</h1>
<div>{{ n1 }}</div>
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
<div>{{ n2.2 }}</div>
<div>{% for item in n2 %}<span>{{ item }}</span>{% endfor %}
</div>
<hr/>
{{ n3 }}
{{ n3.name }}
{{ n3.friend }}
{{ n3.role }}
<ul>
{% for k,v in n3.items %}<span>{{ k }} = {{ v }}</span>
{% endfor %}
</ul>
<hr/>
{{ n4.1 }}
{{ n4.1.name }}
{{ n4.1.role }}{% for item in n4 %}<div>{{ item.name }}  {{ item.attribute }}</div>
{% endfor %}
<hr/>
{% if n1 == "布莱克" %}<h1>光明的救赎</h1>
{% else %}<h1>威斯克</h1>
{% endif %}{% if n1 == "威斯克" %}<h1>光明的救赎</h1>
{% elif n1 == "卡修斯" %}<h1>诅咒之子</h1>
{% else %}<h1>赛尔号</h1>
{% endif %}</body>
</html>
运行结果

在这里插入图片描述

运行模式

在这里插入图片描述

七、请求和响应

【urls.py】文件
from django.urls import path
from app01 import viewsurlpatterns = [# 请求和响应path('something/', views.something),
]
【views.py】文件
from django.shortcuts import render, HttpResponse, redirect
def something(request):# request是一个对象,封装了用户发送过来的所有请求相关数据# 1.获取请求方式 GET/POSTprint(request.method)# 2.在URL上传递值 /something/?n1=123&n2=999print(request.GET)# 3.在请求体中提交数据print(request.POST)# 4.【响应】HttpResponse("返回内容"),内容字符串内容返回给请求者# return HttpResponse("返回内容")# 5.【响应】读取HTML的内容 + 渲染(替换)  ->字符串,返回给用户的浏览器# return render(request, "something.html", {"title": "来了"})# 6.【响应】让浏览器重定向到其他的页面return redirect("https://www.baidu.com")
【something.html】文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>某些请求{{ title }}</h1>
</body>
</html>
运行结果

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

在这里插入图片描述

关于重定向:第二种形式是对的

在这里插入图片描述

http://www.lryc.cn/news/25803.html

相关文章:

  • 研报精选230302
  • Unity心得
  • TryHackMe-Binex
  • 外贸人如何写出优秀的开发信?附详细思路
  • python自学之《21天学通Python》(18)——第21章 案例2 Python搞定大数据
  • 面试问题【数据库】
  • Allegro如何输出钻孔表操作指导
  • 消息队列 面试题 整理
  • 【Java】对象比较大小
  • 发票自动OCR识别并录入模板 3分钟免费配置
  • Dubbo 配置说明
  • 英飞凌TCxxx实战系列01_Alarm处理
  • 飞桨全量支持业内AI科学计算工具——DeepXDE!
  • 【c++基础】
  • 语音识别技术对比分析
  • Idea git 回滚远程仓库版本
  • vscode C++配置
  • 【微电网_储能】基于启发式状态机策略和线性程序策略优化方法的微电网中的储能研究【给定系统约束和定价的情况下】(Matlab代码实现)
  • rk3288-android8-IR-mouse
  • 2023-03-01干活小计
  • 客户服务软件推荐榜:28款!
  • Spring注入和注解实现IOC
  • Python统计Labelme标注文件信息并绘制散点图
  • 远程接入方案 OpenText Exceed TurboX(ETX) 客户案例——ET Innovations
  • Django4.1.7通过djongo1.3.6链接mongoDB6.0.4
  • 如何使用FindFunc在IDA Pro中寻找包含指定代码模式的函数代码
  • 【C++】讲的最通透最易懂的关于结构体内存对齐的问题
  • Stochastic Approximation 随机近似方法的详解之(一)
  • 软件自动化测试工程师面试题集锦
  • 智合同丨教你做一个懂AI的法律人