Python3——Django2新手教程(1)安装~添加应用~启动~返回html模板

0、说明

项目demo地址:https://github.com/qq20004604/Python3_Django_Demo

版本:

django版本:2.2.1
python版本:3.7

1、安装

pip3 install django

初始化:

直接用 pycharm 新建 django 项目。

或者输入命令行:

django-admin startproject [项目名]

会创建文件夹,并且文件夹内部有一个 文件夹(名字是项目名)。

例如:

django-admin startproject  

会在当前目录下创建一个 blogproject 文件夹,进入该文件夹后,还会有一个 blogproject 文件夹,这个里面有多个 py 文件,例如 urls.py

2、创建新应用

作用:

同一个django项目下,可以有多个应用,互相之间独立,方便管理。

创建:

python manage.py startapp [项目名]

效果:

  • 会在根目录(manage.py)下创建一个文件夹,名字等于 [项目名]
  • 此时还需要引入到项目中;

引入:

假如新建的项目名是:homepage,初始化的django项目名是 demo

打开 /demo/urls.py 文件,添加内容,结果应该如下:

from django.contrib import admin
from django.urls import path
# 引入项目
from homepage import views as homepage_views

# 这里配置 url
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', homepage_views.index),
]

效果是 打开 / 路径,显示 homepage/views.py 里面设置的内容。

此时还需要编辑一下 homepage/views.py ,内容如下:

def index(request):
    return HttpResponse('Home Page')

下来启动项目进行验证。

看到这里,我默认你已经明白了如何添加一个新的 url 和 view 了。

3、启动项目

项目根目录下运行

python manage.py runserver 127.0.0.1:8000

打开页面:http://127.0.0.1:8000/,显示内容为:Home Page

注意,此时为【热更新项目】,即你修改后,不需要重启服务器,即时生效。

4、返回 html 文件

template 文件夹下新建 index.html,内容:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test</title>
</head>
<body>
Home Page Test
</body>
</html>

修改 homepage/views.py 如下:

from django.shortcuts import render, HttpResponse


# Create your views here.
def index(request):
    return render(request, 'index.html')

继续访问 http://127.0.0.1:8000/ ,显示内容:Home Page Test

注意,此时页面和之前最大不同不是显示的内容不同,而是一个返回的是字符串,另一方返回的是 html 文件(从chrome的network可得知)。

说明:

  1. 默认是只能取 templates 目录下的 html 文件;
  2. 如果要取其他目录下的 html 文件,通过相对路径来写,默认是不可行的;
  3. 推荐在 templates 目录下再建目录,比如 templates/homepage/xxx.html 这种形式来读取模板文件;
  4. 优点是方便管理;
  5. 另一个方法是通过改 项目名/settings.py 的配置(缺点是复杂项目中,命中错误,后续和之前的文件名是一样);

修改settings.py`` 配置:

如下:

# 说明参考这个https://blog.csdn.net/xys430381_1/article/details/77943434
TEMPLATES = [
    {
        # BACKEND:模板引擎类的python路径,内置的模板引擎分别有'django.template.backends.django.DjangoTemplates'和'django.template.backends.jinja2.Jinja2'
        # DTL和jinja2的区别:https://www.atjiang.com/2scoopsdjango1.8-15-django-templates-and-jinja2/
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # render 的时候,会依次找这些目录下的html文件,会使用list里先匹配到的那个目录里对应的文件
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
            os.path.join(BASE_DIR, 'homepage/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',
            ],
        },
    },
]

两个方案对比:

  • 共同点:都需要编辑 urls.py 文件;
  • 修改settings方案:
    • 方便管理和集成,直接复制粘贴应用的目录,引入和非引入只需要注释和取消注释即可;
    • 但需要注意文件名冲突(即两个应用有模板的文件名相同);
  • 推荐方案:
    • 需要将 templates 文件拷贝到 templates 文件夹中;

修改settings方案的优化:

  • 以上配置基础上,应用的模板文件名,添加应用名前缀,例如 homepage 应用的 index.html 修改文件名为 homepage_index.html;
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值