Django学习——基础篇(上)

本文详细介绍了Django的安装过程,包括使用pip和PyCharm创建项目。接着讲解了如何创建app,特别是models.py和views.py的重要性。文章还涵盖了Django项目的启动运行,如注册app、编写URL和视图函数,以及模板和静态文件的管理。最后,讨论了请求和响应机制,展示了如何处理GET和POST请求,并实现页面重定向。
摘要由CSDN通过智能技术生成

一、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 views

urlpatterns = [
    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 views

urlpatterns = [
    # 请求和响应
    path('something/', views.something),
]
【views.py】文件
from django.shortcuts import render, HttpResponse, redirect
def something(request):
    # request是一个对象,封装了用户发送过来的所有请求相关数据
    # 1.获取请求方式 GET/POST
    print(request.method)

    # 2.在URL上传递值 /something/?n1=123&n2=999
    print(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>
运行结果

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

在这里插入图片描述

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

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shi_jiaye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值