Django学习之一(django的下载和项目创建)

1. django下载

  a 命令行模式

    pip3 install django # 下载最新版本
    pip3 install djagno==1.11.16 # 下载指定版本
    pip3 install django -i 豆瓣源

  b. pycharm

    file-->settings--->project ----> 点击+---->Django---->install

2. 创建第一个项目

  a. 命令行

    django-admin startproject 项目名称

  b. pycharm

    file-->New project --->左边选择Django--->右边上面第一行设置路径和项目名称----> 选择解释器---->指定APP名称--->create

 

3. 创建APP

  "高内聚,低耦合"

  a. 命令行

  python manage.py startapp 项目名称

  # 注意:
      命令行创建的APP需要手动注册

   添加app01的配置:(setting 文件)

    INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
       # 注册方式;
      # "app01",
      'app01.apps.App01Config', # 推荐这种方式
      ]  

    

 

 

  b. pycharm

    同上pycharm创建项目时指定

  注意:templates文件拼接,(html文件直接放入templates文件夹中,不需要添加任何文件夹

 

 4.添加配置文件:

    statics,下面放文件夹:css,images,js,plugins(pep8 python开发规范)

5. 启动项目: 

  a.命令行

    python manage.py runserver # 127.0.0.1:8000 默认
    python mange.py runserver 80 # 127.0.0.1:80
    python manage.py runserver 0.0.0.0:8888 # 0.0.0.0:8888# 注意:要在manage.py同级目录执

  b. pycharm

    右上角的绿色三角按钮

    在edit进行修改配置

6. 路由层

  a. 分组

    a1. 无名分组

      re_path(r'^articles/([0-9]{4})/$', views.articles_year), # 无名分组,按位置传参

    a2. 有名分组

      re_path(r'^articles/(?P<year>[0-9]{4})/$', views.articles_year), # 有名分组,按关键字传参

  b. 反向解析

    b1. 基本使用

      path("login2/", views.login, name="Login"),
      # 在python代码使用反向解析
      from django.urls import reverse
      reverse(name)
      # 在模板里使用反向解析  [html文件]
      {% url 'name' %}

    b2. 无名分组的反向解析

      re_path(r'^articles/([0-9]{4})/$', views.articles_year, name="ar_year"),
      # 在python代码使用反向解析
      from django.urls import reverse
      reverse("ar_year", args=(2019,))
      # 在模板里使用反向解析
      {% url 'ar_year' 2019 %}

    b3. 有名分组的反向解析

      re_path(r'^articles/(?P<year>[0-9]{4})/$', views.articles_year, name="ar_year"),
      # 在python代码使用反向解析
      from django.urls import reverse
      reverse("ar_year", kwargs={"year": 2018})
      # 在模板里使用反向解析
      {% url 'ar_year' year=2018 %}

    b4. 名称空间

      path("app01/", include(("app01.urls", "app01"))), # /app01/test/
      path("app02/", include(("app02.urls", 'app02'))),
      # 在python代码使用反向解析
      from django.urls import reverse
      reverse("app01:name")
      # 在模板里使用反向解析
      {% url 'app01:name' %}

7. 视图层

  a. request请求对象

    a1. 对象的属性

      request.GET

      request.POST
      request.body # 原生的请求体的内容
      request.path # 获取当前请求的url
      request.method # 获取当前请求的方式

  

    a2. 对象的方法

      get_full_path() # 获取当前请求的完整url
      例子:
      1111 /app01/login2/
      5555 /app01/login2/?name=liuzhihua&age=18
      is_ajax() # 判断当前请求是否是ajax请求, 返回值为布尔
  b. HTTPResponse响应对象(响应三剑客)

    b1.- render 返回模板文件

      必须参数:

        - request
        - 模板文件
        - 可选参数(数据)

        - HTTPResponse

        返回字符串

    b2.- redirect

      重定向

        ![1572770043580](assets/1572770043580-1572771834207.png)

 

posted @ 2019-11-18 14:21  vivianping  阅读(178)  评论(0编辑  收藏  举报