Django框架之简单的Hello World!(躺坑之旅)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43862765/article/details/102470697

由于看的是一本翻译的《精通Django》,书上的代码都是基于Django1.8.13的,但是只适用于python3.4版本的,所以我的Python3.7在装上Django2.2.6后使用代码时遇到了大量的bug,在谷歌搜索后终于解决了,但是有些我不是很理解(像r'^hello/$'出现bug,但是换成r'^$'就可以了)

①按照书上的操作装上虚拟环境virtualenv之后,创建了自己的文件夹env_mysite/projects_django/mysite

之后修改urls.py和views.py,书上原代码如下:(开始下载后,urlpatterns那里用的应该是path,但是我为了和书上的一样换成了url,所以开始的一些库啥的都要改变)

urls.py

from django.conf.urls import include,url
from django.contrib import admin
from mysite.views import hello
urlpatterns = [
    url(r'^admin/',admin.site.urls),
    url(r'^hello/$',include('hello.urls'),
    ]

views.py

from django.http import HttpResponse

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

②运行后遇到的第一个bug就是:

django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

截图显示:

可以参考这篇博客:https://blog.csdn.net/joe8910/article/details/82252882

咱们的Django2.2版本和Django1.8版本的区别就在这

直接删除include后代码就能解决:

urls.py代码如下:

from django.conf.urls import include,url
from django.contrib import admin
from mysite.views import hello
urlpatterns = [
    url(r'^admin/',admin.site.urls),
    url(r'^hello/$',hello),
    ]
#url使用正则表达式模式匹配浏览器中的URL,把它映射到Django项目中的某个模块上
#urlpatterns即url()实例列表,负责定义URL及处理URL代码之间的映射

现在继续运行,发现cmd上开始没报错:

但是在浏览器打开:127.0.0.1:8000时出现这样的bug:

我翻了好多博客,还是没明白为什么,于是改成这样,发现居然可以了:

from django.conf.urls import include,url
from django.contrib import admin
from . import views
urlpatterns = [
    url(r'^admin/',admin.site.urls),
    url(r'^$',views.hello),
    ]
#url使用正则表达式模式匹配浏览器中的URL,把它映射到Django项目中的某个模块上
#urlpatterns即url()实例列表,负责定义URL及处理URL代码之间的映射

现在运行cmd和网页上都显示正确:

虽然解决了,但是我还是有点问题,希望大佬能够帮助我:

1)为什么库:from mysite.views import hello换成from . import views?

2)为什么r'^hello/$'要换成r'^$'?

最后:

1)如果您能解决这个问题,请留言告诉我,谢谢~~

2)认为这篇文章有帮助的话,请点个赞(大物考试前夕的我都没复习~~)

3)互相交流加QQ:3055299880(我小号)

猜你喜欢

转载自blog.csdn.net/weixin_43862765/article/details/102470697