安装Django

pip install django

E:\Anaconda -python.exe -Scripts -pip.exe -django-admin.exe 【工具,创建django项目中的文件和文件夹】 -Lib -内置模块 -site-packages -openpyxl -python-docx -flask -django 【框架源码】

创建项目(命令)

  • 打开终端
  • 进入到某个目录里面(项目存放文件夹)

    E: cd E:\python-project

  • 执行命令创建项目

    “E:\Anaconda\Scripts\django-admin.exe” startproject 项目名

如果E:\Anaconda\Scripts\已加入到环境变量,则

admin-django.exe startproject 项目名

  • 创建项目

    “E:\Anaconda\Scripts\django-admin.exe” startproject django_setup

image.png

Pycharm创建项目

注意:
-python解析器安装目录,

E:\Anaconda\python.exe lib …..(lib)是解释器文件。

-项目安装目录

E:\python-project

两种方式对比

  • 命令行,创建的项目是标准的。
  • pycharm,在标准的基础上默认给咱们加了点东西

    • 创建了一个tempaltes目录【删除】
    • settings.py中
    • image.png

      默认文件的介绍

      :::tips mysite
      —manage.py 【项目的管理,启动项目,创建app,数据管理】 【不要动】
      —mysite
      int.py
      —settings.py 【项目配置】 【常常修改
      —urls.py 【url和函数的对应关系】 【常常修改
      —asgi.py 【接收网络请求】 【不要动】
      —wsgi.py 【接收网络请求】 【不要动】 :::

      app的创建和说明

      :::tips -项目
  • app,用户管理 【表结构、函数、HTML模板、CSS】

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

注意:我们开发比较简洁,用不到多app,一般情况下,创建一个app即可。 ::: image.png
django项目的结构
image.png
Day15 初识Django - 图5

快速上手

  • 确保app已经注册【】

image.png

  • 编写URL和视图函数对应关系【】

image.png

  • 编写视图函数【views.py】
  • image.png
  • 启动Django函数

命令行启动 :::tips python manage.py runserver ::: pycharm启动
image.png :::tips

:::

templates

绑定关系url -> views
image.png
静态文件
在开发过程中一般将

  • 图片
  • css
  • js

当作静态文件处理

4.3.1在app目录下创建static文件夹

image.png

4.3.2引用静态文件

image.png
在网站进行访问,直接在pycharm中打开html文件是不解析的。

5.模板语法

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

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>模板语法学习</h1>
  9. <div>{{ n1 }}</div>
  10. <div>{{ n2 }}</div>
  11. <div>{{ n2.0 }}</div>
  12. <div>{{ n2.1 }}</div>
  13. <div>{{ n2.2 }}</div>
  14. <div>
  15. {% for item in n2 %}
  16. <span>{{ item }}</span>
  17. {% endfor %}
  18. </div>
  19. <hr/>
  20. {{ n3 }}
  21. {{ n3.name }}
  22. {{ n3.salary }}
  23. {{ n3.role }}
  24. {# sd n3.keys键 n3.value 值 n3.item 对#}
  25. {% for k,v in n3.items %}
  26. <li>{{ k }}={{ v }}</li>
  27. {% endfor %}
  28. {{ n4.0 }}
  29. {{ n4.0.name }}
  30. {{ n4.0.role }}
  31. {% for item in n4 %}
  32. <div>{{ item.name }}</div>
  33. <div>{{ item.salary }}</div>
  34. {% endfor %}
  35. {% if n1 == "小明" %}
  36. <h1>大大大</h1>
  37. {% elif n1 == "xxx" %}
  38. <h1>嘀嘀嘀</h1>
  39. {% else %}
  40. <h1>嘟嘟嘟</h1>
  41. {% endif %}
  42. </body>
  43. </html>

案例:伪联通中心

案例:请求 和响应

image.png

def something(request):

    # request是一个对象,封装了用户发送过来的所有请求相关数据
    # 1.获取请求方式
    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')

    # 6.【响应】 浏览器重定向
    return redirect("https://www.baidu.com/")

关于重定向:第二种形式
image.png

案例:用户登录

在提交表单中加入CSRFtoken
image.png

image.png