目录

Django

安装及查看版本

1
2
3
4
5
6
pip3 install Django==4.0.6

# 进入python
python
import django
print(django.get_version())

windows安装路径

1
C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Lib\site-packages\django

创建第一个django 项目

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 新建一个文件夹
E:\code2022\django\demo
# 进入文件夹 
cd E:\code2022\django\demo
# 创建项目 mysite 是项目名称
django-admin.exe startproject mysite
# 进入到mysite 然后启动项目
cd mysite
python manage.py runserver

"""
July 08, 2022 - 15:34:30
Django version 4.0.6, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
"""
# 访问:http://127.0.0.1:8000/ 出现网页,项目启动成功。

注意:启动项目可以指定端口,不指定默认是8000

1
python manage.py runserver 8002

创建网页文件views.py

在mysite文件夹内部创建

1
2
3
4
from django.http import HttpResponse

def hello(requets):
    return HttpResponse("Hello world! ")

修改url路径

编辑urls.py

1
2
3
4
5
6
from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello),
]

测试访问:

1
http://127.0.0.1:8000/hello/

访问过程:

1
2
浏览器访问http://127.0.0.1:8000/hello/ -> 先到urls.py中hello路径对应的页面 views.hello->
        然后执行views.py中定义的hello函数->最后把结果返回给浏览器

创建第二个项目mysite2

1
2
# 路径  E:\code2022\django\demo
django-admin.exe startproject mysite2

创建和mysite2同级的文件夹templates并在其内部创建mytemp.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 路径  E:\code2022\django\demo\mysite2 注意要和mysite2 内部的mysite2同级。
# mytemp.html 内容如下
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <h1>{{ hello }}</h1>
    </body>
</html>

修改E:\code2022\django\demo\mysite2\mysite2\settings.py文件内容

找到刚刚创建的templates文件夹路径,修改下

1
2
3
4
5
6
7
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        
在第一行引入os模块
        import os

解释os.path.john(BASE_DIR,'templates')

引入os模块,将BASE_DIR(项目绝对路径)和templates做路径拼接。拼接后的结果是:E:\code2022\django\demo\mysite2\templates

E:\code2022\django\demo\mysite2\mysite2中创建views.py文件

1
2
3
4
5
6
7
8
from django.shortcuts import render


def mytemp(request):

    context          = {}
    context['hello'] = 'Hello World!'
    return render(request, 'mytemp.html', context)

修改url(E:\code2022\django\demo\mysite2\mysite2\urls.py

1
2
3
4
5
6
7
from django.urls import path

from . import views

urlpatterns = [
    path('mytemp/', views.mytemp),
]

进入项目所在文件夹,在cmd中启动项目指定端口8002

1
python manage.py runserver 8002

测试访问

1
http://127.0.0.1:8002/mytemp/

访问过程

1
2
3
4
5
127.0.0.1:8002/mytemp
    ->urls.py中寻找/mytemp 它的映射为 views.mytemp
    -> mytemp函数在views.py中定义
    ->mytemp函数还定义了context空字典传入键hello和值(Hello World!) 键将在主页mytemp.html中调用
    -> h1标签中调用键hello

django模板标签

链接

列表

templates 中的 mytemp.html 中,可以用 . 索引下标取出对应的元素。

D:\code2022\Django\demo\mysite2\mysite2\urls.py中修改路径

1
2
3
4
5
from django.urls import path
from . import views
urlpatterns = [
    path('mytemp/', views.mydef),
]

新建D:\code2022\Django\demo\mysite2\mysite2\views.py文件,定义mydef函数

1
2
3
4
5
from django.shortcuts import render

def mydef(request):
    views_list = ["简单示例demo1","简单示例demo2","简单示例demo3"]
    return render(request, 'mytemp.html', {"views_list": views_list})

创建模板文件夹和主页文件

D:\code2022\Django\demo\mysite2\templatesD:\code2022\Django\demo\mysite2\templates\mytemp.html

Tip:可以用!+Tab键快速创建html代码,然后再添加内容。s

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# mytemp.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <p>{{ views_list }}</p> # 取出整个列表
<p>{{ views_list.0 }}</p> # 取出列表的第一个元素
</head>
<body>
    
</body>
</html>

设置主页文件(mytemp.html)路径

D:\code2022\Django\demo\mysite2\mysite2\settings.py

找到关于templates文件夹的配置

1
2
3
4
5
6
import os 

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],

启动项目

1
python .\manage.py runserver 8003

访问127.0.0.1:8003/mytemp测试。

字典

D:\code2022\Django\demo\mysite3\mysite3\urls.py

1
2
3
4
5
from django.urls import path
from . import views
urlpatterns = [
    path('mytemp/', views.mydef),
]

D:\code2022\Django\demo\mysite3\mysite3\views.py

1
2
3
4
5
from django.shortcuts import render

def mydef(request):
    views_dict = {'name':'简单demo演示'}
    return render(request,'mytemp.html', {'views_dict': views_dict})

D:\code2022\Django\demo\mysite3\templates\mytemp.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <p>{{ views_dict }}</p>
<p>{{ views_dict.name }}</p>
</head>
<body>
    
</body>
</html>

D:\code2022\Django\demo\mysite3\mysite3\settings.py

1
2
3
4
5
6
import os

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],

启动项目并测试

1
2
python .\manage.py runserver 8004
http://127.0.0.1:8004/mytemp
警告
本文最后更新于 July 22, 2023,文中内容可能已过时,请谨慎使用。