Python学习笔记-Django篇

安装(mac)

方法一:pip命令安装
$ pip3 install Django

指定版本:

$ pip3 install Django==3.0.8
方法二:下载源码安装

下载地址:https://www.djangoproject.com/download/

$ tar zxvf Django-3.0.8.tar.gz
$ cd Django-3.0.8
$ python3 setup.py install
方法三:从github获取
$ git clone https://github.com/django/django.git
创建项目:

网上:

$ django-admin.py startproject djangoTest

实际情况(mac):

python3 /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/bin/django-admin.py startproject djangoTest
启动服务:
$ cd djangoTest
$ python3 manage.py runserver
或
$ python3 manage.py runserver 127.0.0.1:8000
项目目录:
  • djangoTest: 项目的容器。
  • manage.py: 命令行工具,以各种方式与该项目进行交互。
  • djangoTest/__init__.py: 空文件,表示一个 Python 包。
  • djangoTest/asgi.py: ASGI 兼容的 Web 服务器的入口,以便运行项目。
  • djangoTest/settings.py: 项目的配置文件。
  • djangoTest/urls.py: 项目的 URL 声明,网站"目录"。
  • djangoTest/wsgi.py: WSGI 兼容的 Web 服务器的入口,以便运行项目。

路由配置

配置文件:urls.py

# urls.py
from django.conf.urls import url
from . import home as v_home # 视图

url(r'^$', v_home.home)
path、re_path、include方法
  • path函数语法:path(route, view, kwargs=None, name=None)
  • 正则表达式的规则一般用re_path方法实现
  • include方法用于导入其他模块的路由配置
# urls.py
from django.urls import include, re_path
from . import home as v_home
from . import admin as v_admin

urlpatterns = [
    re_path(r'^$', v_home.home),
    re_path('admin/', v_admin.index, name='Tony'),
    re_path(r'^user/', include('djangoStudy.urls_user'))
]
# urls_user.py
from django.urls import re_path
from . import user as v_user

urlpatterns = [
    re_path(r'user/$', v_user.index, name='Tom')
]

模板

配置路径:
  1. 在项目根目录下创建 templates 目录
  2. 在setting.py文件,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates"]
# setting.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
            ],
        },
    },
]
渲染模板:
# home.py
from django.shortcuts import render
def home(request):
    context = {} # 上下文字典
    return render(request, 'home.html', context)
# urls.py
from django.urls import include, re_path
from . import home as v_home

urlpatterns = [
    re_path(r'^$', v_home.home),
]
模板语法:

home.py文件:

# home.py
from django.shortcuts import render
import datetime


def home(request):
    context = {
        'word': 'Hello home!',
        'list': ['aa', 'bb', 'cc', 'dd'],
        'dict': {
            'a': 11,
            'b': 22
        },
        'size': 3421,
        'time': datetime.datetime.now(),
        'link': '跳转'
    }
    return render(request, 'home.html', context)

templates/home.html文件:




    
    home


[word]: {{word}}

[list]: {{list}}

[list.0|first|upper]: {{list.0|first|upper}}

[dict.b]: {{dict.b}}

[word|lower]: {{word|lower}}

[word|truncatewords:"1"]: {{word|truncatewords:"1"}}

[word|truncatechars:8]: {{word|truncatechars:8}}

[word|length]: {{word|length}}

[size|filesizeformat]: {{size|filesizeformat}}

[time|date]:"Y-m-d": {{time|date:"Y-m-d"}}

[link|safe]: {{link|safe}}

[if判断]:

{% if size > 1000 %}

size > 1000

{% endif %}

[for循环]:

    {% for l in list %}
  • {{ l }}
  • {% endfor %}

[for字典循环]:

    {% for k,v in dict.items %}
  • ({{ forloop.counter }}|{{ forloop.counter0}}|{{ forloop.revcounter }}|{{ forloop.revcounter0}}|{{ forloop.first}}|{{ forloop.last}}) {{ k }} : {{ v }}
  • {% endfor %}

页面效果:


image.png
自定义语法:

静态路径配置

  1. 在项目根目录下创建 statics 目录
  2. 在 settings.py添加以下配置:
STATIC_URL = '/static/' # 路径别名
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "statics"),
]

你可能感兴趣的:(Python学习笔记-Django篇)