初学《python编程从入门到实践》web应用程序,出现错误
一开始是遇到了TemplateDoesNotExist的错误,上百度都是说改settings.py里面的TEMPLATE的DIRS,
但我改了还是出现问题,
我用的《python编程从入门到实践》这本书的出版时间是2016的,当时作者用的是django 1.x版本,而现在官方已更新成4.x版本。
就出现一些由于版本更新而导致的问题,我来分享一下我的解决方案。
书中和现在的差异主要是:
Django放弃使用url函数,而改为path和re_path ,所以有些语法就有小改变
他们都是用来配置路由的
1.x: url是支持正则,也支持直接匹配
新版: path不支持 正则表达式,不过re_path是支持的
那我们就可以这样改:
你的app/urls.py
from django.urls import re_path
from . import views urlpatterns = [
# 主页
re_path(r'^$', views.index, name='index'),
]
将导入的path改为导入re_path,然后用re_path的语句,(index是我的主网页)
项目/urls.py
from django.contrib import admin
from django.urls import include, path urlpatterns = [
path('admin/', admin.site.urls),
path('', include(('APP名称.urls', 'APP名称'), namespace='APP的名称')),
]
这里要在include里面创建一个元组('XXX.urls', ‘XXX’)
如果不改的话 命令行就会提示
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not
supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and
app_name instead.
翻译:
django.core.exceptions.不正确配置:
不支持在include()中指定命名空间而不提供app_name。
在包含的模块中设置app_name属性,或者传递一个包含模式列表和app_name的2次元组。
它告诉我们解决方法有两种;
1、就是我在上面改法,在include里面传递一个元组
2、在你的应用的urls.py文件里面设置一个 app_name属性
以下是另一种解决方案:
你的APP/urls.py
from django.urls import re_path
from . import views urlpatterns = [
# 主页
re_path(r'^$', views.index, name='index'),
]
app_name = '你的APP名称'
项目/urls.py
from django.contrib import admin
from django.urls import include, path urlpatterns = [
path('admin/', admin.site.urls),
path('', include('APP名称.urls', namespace='APP的名称')),
]
这样问题就解决啦!
初学《python编程从入门到实践》web应用程序,出现错误的更多相关文章
- Python编程-从入门到实践 Eric Matthes 著 袁国忠 译 - - 第二章 动手试一试
因为第一章的动手试一试基本都是探索性的,所以直接进入第二章. # 2.2 动手试一试 # 2_1 简单消息: 将一条消息存储到变量中,再将其打印出来. message = 'python 编程从入门到 ...
- 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习
入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...
- 设置应用程序的样式并对其进行部署——《Python编程从入门到实践》
我们将使用应用程序django-bootstrap3为Web应用程序设计样式.我们将把项目"学习笔记"部署到Heroku,这个网站能让我们们将项目推送到其服务器,让任何有网络连接的 ...
- 《Python编程:从入门到实践》分享下载
书籍信息 书名:<Python编程:从入门到实践> 原作名:Python Crash Course 作者: [美] 埃里克·马瑟斯 豆瓣评分:9.1分(2534人评价) 内容简介 本书是一 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
随机推荐
- zookeeper之安装
zookeeper之安装 一.准备条件 1.1 最低三个服务器(一主多从,1个leader,多个flower)1.2 将zookeeper安装包上传到集群并解压zookeeper 二.将conf目录下 ...
- 【JavaWeb】学习笔记——Servlet、Filter、Listenter
Servlet Servlet 简介 Servlet 是 Java提供的一门动态web资源开发技术 Servlet 是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Se ...
- C#--对上传的Excel文档的处理
注:ToString对数值字符串的处理 string nID=555; nID.ToString("00000000"); ---00000555 var oFile = Re ...
- 题解 SP24 FCTRL2 - Small factorials
双倍经验. 题意 给\(t\) 组数据,求每组数据中\(n\) 的阶乘. 思路 \(n≤100\) . \(100!\) 肯定爆int128,所以高精呗. 那么就是一个阶乘的板子了,应该不难的吧. 具 ...
- 类的编写模板之简单Java类
简单Java类是初学java时的一个重要的类模型,一般由属性和getter.setter方法组成,该类不涉及复杂的逻辑运算,仅仅是作为数据的储存,同时该类一般都有明确的实物类型.如:定义一个雇员的类, ...
- Vue 实现小小记事本
1.实现效果 用户输入后按回车,输入的内容自动保存,下方会显示记录的条数,鼠标移动到文字所在div上,会显示删除按钮,点击按钮,相应记录会被删除,下方的记录条数会相应变化,点击clear,所有记录会被 ...
- pycharm系列---django
manage debug Python Console基本配置 DJANGO_SETTINGS_MODULE=mini_project.settings import sys import djang ...
- 基于 Sealos 的镜像构建能力,快速部署自定义 k8s 集群
Sealos 是一个快速构建高可用 k8s 集群的命令行工具,该工具部署时会在第一个 k8s master 节点部署 registry 服务(sealos.hub),该域名通过 hosts 解析到第一 ...
- CAN总线数据链路层(一)
1.通信机制 发送报文. 1.首先检测Bus状态,空闲 则发送 报文且回读 2.线与机制,若有两个节点同时发报文 报文结构: 通过ID进行仲裁(规则 ...
- 对于函数极限存在的充要条件“lim f(x)=A互推f(x)=A+a(x) lim a(x)=0”补充解释
毫无疑问,这个定义适用于任何函数极限,诺f(x)有去间断点的时候,a(x)也为可去间断点函数. 例: