第一章:Django入门

1.安装Django

pip install django

2.创建项目

django中项目会有一些默认的文件和默认的文件夹。

2.1 在终端

  • 打开终端
  • 进入某个目录(项目放在哪里)
E:\repo\MMF\Python\djangodemo
  • 执行命令创建项目
"E:\soft\Python\Python37\Scripts\django-admin.exe" startproject 项目名称
# 如果 Python 已经增加到环境变量中可以直接执行

django-admin startproject 项目名称

2.2 Pycharm创建

2.3 两种创建方式的对比

  • 使用命令行创建的项目是最标准的【推荐】
  • Pycharm,在标准的基础上默认给咱们增加了一点东西:
    • 创建了一个Templates目录【删除】
    • settings.py中
      在这里插入图片描述

2.4 默认项目的文件介绍

mysite
├─manage.py			【项目的管理,启动项目、创建App、数据管理】---不要动
└─mysite
  ├─__init__.py		 
  ├─settings.py	 	 【项目配置】
  ├─urls.py			 【URL和函数的对应关系】---常常操作
  ├─asgi.py			【异步运行项目,编写socket,处理网络请求】--- 不要动
  ├─wsgi.py			【同步运行项目,编写socket,处理网络请求】--- 不要动

3.APP

3.1 创建App

python manage.py startapp App名称 

3.2默认App的文件介绍

├─app01
  ├─__init__.py
  ├─admin.py		【固定,不用动】 Django默认提供了admin后台管理
  ├─apps.py			【固定,不用动】app启动类
  ├─migrations		 【固定,不用动】数据库变更记录
    ├─__init__.py
  ├─models.py		【**重要**】 对数据库操作
  ├─tests.py		【固定,不用动】单元测试
  ├─views.py		【**重要**】 视图函数
├─manage.py			
└─mysite
  ├─__init__.py		 
  ├─settings.py	 	 
  ├─urls.py			 
  ├─asgi.py			
  ├─wsgi.py			

4.快速上手

4.1在settings.py中注册App【settings.py】

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

4.4启动Django项目

  • 命令行启动
python manage.py runserver 0.0.0.0:8080
  • Pycharm启动

4.5测试

在这里插入图片描述

5.Template模板文件

  • 创建模板
要在App下新建一个templates目录

在这里插入图片描述

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 默认先从根目录的templates中寻找,如果找不到则到各自App中寻找
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
  • 调用模板
def user_list(request):
    # 1. 优先去项目根目录的templates中寻找【前提是在settings中配置模板路径,不配置则无效】
    # 2. 去App目录下的templates目录寻找  user_list.html(寻找顺序:根据app的注册循序寻找)
    return render(request=request, template_name='user_list.html')

6.Static静态文件

  • 创建资源文件
注意:静态文件一定要放在static文件夹下面,否则会检索不到,因为在settings.py中定义的静态文件路径

在这里插入图片描述

在这里插入图片描述

  • 引用资源文件

在这里插入图片描述

7.模板语法

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

在这里插入图片描述

def tpl(request):
    name = '韩超'
    roles = ['管理员', 'CEO', '保安']
    user_info = {'name': '郭荣', 'salary': 10000, 'role': 'CEO'}
    data_list = [
        {'name': '郭志', 'salary': 10000, 'role': 'CTO'},
        {'name': '张三', 'salary': 10000, 'role': 'CTO'},
        {'name': '李四', 'salary': 10000, 'role': 'CTO'},
    ]
    return render(request=request, template_name='tpl.html',
                  context={'name': name, 'roles': roles, 'userInfo': user_info, 'dataList': data_list})
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>模板语法学习</title>
</head>
<body>
  <h1>模板语法的学习</h1>
  {# 赋值 #}
  <div>{{ name }}</div>
  {# 循环展示 #}
  <div>
    {% for item in roles %}
      <span>{{ item }}</span>
    {% endfor %}
  </div>
  {# 字典获取展示 #}
  <ul>
    {% for k,v in userInfo.items %}
      <li>{{ k }} = {{ v }}</li>
    {% endfor %}
  </ul>
  {# 列表字典展示 #}
  {% for data in dataList %}
    <div>
    {{ data.name }}  {{ data.salary }}  {{ data.role }}
    </div>
  {% endfor %}
  {# 条件判断 #}
  {% if name == '韩超'%}
    <div>哒哒哒哒哒哒</div>
  {% elif name == 'xxx'%}
    <div>啊啊啊啊啊啊</div>
  {% else %}
    <div>嘟嘟嘟嘟嘟嘟</div>
  {% endif %}
</body>
</html>

8.请求和响应

方法解释
请求
request.method获取请求方式GET/POST
request.GET获取URL携带过来的参数
request.POST获取POST请求的参数
响应
HttpResponse()返回字符串如果返回的内容不是字典需要设置safe=False
render(request=request, template_name=template_name, context=context)返回HTML页面request:请求;
template_name:HTML页面;
context:向页面传递的参数
redirect(to=to)重定向to:重定向到什么地方,可以是网址,也可以是方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Monly21

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

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

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

打赏作者

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

抵扣说明:

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

余额充值