首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  Django

学习书 Python 从入门到实践 18.3.1 映射 URL 出错,弄了两晚上,实在没解了,来问下大佬们

  •  
  •   shonky · 76 天前 · 958 次点击
    这是一个创建于 76 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://i.loli.net/2018/09/04/5b8e904239492.png 如图所示,Django 是 2.1.1 的,python3.7 请教下大佬啊,文档也看了,谷歌也谷歌到相应问题,照着改了就是没用啊。

    27 回复  |  直到 2018-09-05 21:41:14 +08:00
        1
    princelai   76 天前 via Android
    django-admin startapp xxxx,你是这么添加 Django app 的呢
        2
    shonky   76 天前
    @princelai 不是这么 python manage.py startapp learning_logs 创建的么?
        3
    Sanko   76 天前 via Android   ♥ 1
    提示说的很明白了,你没写 app_name 啊
        4
    xpresslink   76 天前   ♥ 1
    解决方法
    在 project\learning_notes\urls.py
    开头加上一句
    app_name = 'learning_notes'
        5
    shonky   76 天前
    @Sanko 谢谢,网页是可以打开了,可显示 404,
        6
    shonky   76 天前
    @xpresslink 谢谢了,确实是可以,没报错了,又出现个问题为啥不能正常显示 index.html.
        7
    xpresslink   76 天前   ♥ 1
    @shonky
    加了 namespace 后
    反解析 url 时都要使用 {% url 'learning_notes: method_name ‘ %} 模式。
        8
    shonky   76 天前
    @xpresslink 这个东西加在<head ></head>中么
        9
    Sanko   76 天前 via Android   ♥ 1
    显示 404 ?你可以把你的 urls 和 views 贴上来,根据你目前提供的信息无法判断
        10
    xpresslink   76 天前   ♥ 1
    @shonky
    settings.py 中 打开调试模式

    DEBUG=True

    把报错详细信息贴上来
        11
    shonky   76 天前
    @Sanko Not Found
    The requested URL / was not found on this server.
        12
    shonky   76 天前
    @xpresslink 这个解决了,404 不见了。出现了这个 Not Found
    The requested URL / was not found on this server.。
    我不太知道创建了一个简单的 index.html,这个反解析要放在那里。
        13
    shonky   76 天前
    @xpresslink 这个错误好像和反解析没关系吧,因为并没有用到 URL
        14
    Sanko   76 天前 via Android
    你现在是首页要显示一个已经写好的 html 文件是吗?你可以去搜下 render 函数
        15
    shonky   76 天前 via Android
    @Sanko 好的,我是按那书上做的。也许是因为版本不同,有些东西用的不太一样。我明天在看看文档。看是不是 render 用法变了。
        16
    RBQMT   75 天前
    url.py 里 path 后面不用写正则,path('admin/', admin.site.urls),这样写就行
        17
    RBQMT   75 天前
    path('about_us/',views.about_us, name='about_us'),上面例子不太好,这样
        18
    xpresslink   75 天前
    @shonky
    最省事的办法


    然后在 urlpatterns 中最上面加一行
    path('', TemplateView.as_view(template_name="index.html"), name="index"),
        19
    xpresslink   75 天前
    在 learning_notes 下的 urls 开头加一行
    from django.views.generic import TemplateView
        20
    PulpFunction   75 天前
    上 git 看看 demo 啥的
        21
    shonky   75 天前 via Android
    @RBQMT 是 2.11 版本 path 可以不用像 url 那样写正则么。看文档说 path 比 url 能更好弄路由。
        22
    shonky   75 天前 via Android
    @PulpFunction 看 demo 样例是叫我去看看别人优秀的源码么。还是怎么个意思 。
        23
    shonky   75 天前 via Android
    @xpresslink 好的,晚上回去试试。谢谢大佬抽空解答。
        24
    freakxx   75 天前
    app_name = getattr(urlconf_module, 'app_name', app_name)
    if namespace and not app_name:
    raise 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.',
    )


    @shonky
    你点进去 include 可以看到这个;

    你设置 namespace 相对应在 include 的 urls 也需要设置 app_name ;


    url reverse 的时候也必须加上去:
    如"namespace:route" 或者 "app_name:route";

    相同的情况下,默认优先匹配第一个;
        25
    shonky   75 天前 via Android
    @freakxx 感谢大佬帮助。
        26
    shonky   75 天前
    @xpresslink 大佬,按你的改了。网页报错 Server Error (500)
        27
    xpresslink   75 天前
    @shonky

    在 settings py 中 打开调试模式

    DEBUG=True

    把报错详细信息贴上来
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   743 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 21:56 · PVG 05:56 · LAX 13:56 · JFK 16:56
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1