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

django的templates和url,views之间的关系怎么弄?

  •  
  •   1272729223 · 2012-07-09 13:59:38 +08:00 · 7612 次点击
    这是一个创建于 4528 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想自学python和django。

    现在到这一步: 创建一个模板文件夹templates,但是我不知道放在哪个目录.
    然后模板文件怎么写在views里面? url里面怎么配置?

    望指点,谢谢!

    比如我先写一个base.html,然后再写一个about.html 这些文件怎么弄?(具体的不需要讲,只需要怎么配置) 我可以runserver预览! 谢谢
    18 条回复    1970-01-01 08:00:00 +08:00
    passluo
        1
    passluo  
       2012-07-09 14:05:17 +08:00
    http://djangobook.py3k.cn/2.0/

    看这里耐心看完。。自学最重要的是耐心。

    中文版有些地方翻译不是很好,特别是模板那2章节,建议看源码和觉得不太对的地方去看英文版。中文版字符没有转译。
    1272729223
        2
    1272729223  
    OP
       2012-07-09 14:06:39 +08:00
    @passluo 谢谢,我就是在看这个!
    passluo
        3
    passluo  
       2012-07-09 14:12:16 +08:00
    @1272729223 http://new.djangobook.com/en/2.0/ 建议第四章和第九章结合英文版的看。边看边动手哈。 基础模板 和子模板继承在第四章有讲
    helloboy
        4
    helloboy  
       2012-07-09 14:13:56 +08:00
    djangobook 看这书的时候自己多动手。
    1272729223
        5
    1272729223  
    OP
       2012-07-09 14:19:05 +08:00
    恩 谢谢两位!
    1272729223
        6
    1272729223  
    OP
       2012-07-09 14:43:52 +08:00
    settings:
    import os.path

    TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
    )

    urls.py:
    from django.conf.urls.defaults import *
    from django.views.generic.simple import direct_to_template
    from cy.views import index

    urlpatterns = patterns('',
    (r'^$',index), (这里地方怎么弄?)
    )

    views.py:
    from django.http import Http404,HttpResponse
    from django.template.loader import get_template
    from django.template import Context
    import datetime

    def index(request):
    now=datetime.datetime.now()
    return render_to_response('index.html', locals())



    以下是我的目录结构
    cy:
    manage.py
    cy:
    __init__.py
    settings.py
    urls.py
    views.py
    wsgi.py
    templates:
    base.html
    index.html
    about.html
    contact.html
    1272729223
        7
    1272729223  
    OP
       2012-07-09 14:45:04 +08:00
    cy:
    ####manage.py
    ####cy:
    ########__init__.py
    ########settings.py
    ########urls.py
    ########views.py
    ########wsgi.py
    ####templates:
    ########base.html
    ########index.html
    ########about.html
    ########contact.html
    1272729223
        8
    1272729223  
    OP
       2012-07-09 14:46:28 +08:00
    Page not found (404)

    Using the URLconf defined in cy.urls, Django tried these URL patterns, in this order:

    ^$

    The current URL, index/, didn't match any of these.
    1272729223
        9
    1272729223  
    OP
       2012-07-09 15:09:19 +08:00
    这个问题 ok了,是路径不对!
    yanng
        10
    yanng  
       2012-07-09 18:19:46 +08:00
    不可以这么浮躁的学django,django的文档基本上是几个py web框架中最详细的了,views url templte是最基本的东西了,沉下心来好好学吧。
    1272729223
        11
    1272729223  
    OP
       2012-07-09 20:25:23 +08:00
    @yanng 恩 谢谢! :-)
    judezhan
        12
    judezhan  
       2012-07-13 01:06:54 +08:00
    这个真不是我吐槽,作为技术人员,要开始学习一项新技术,最起码要先把文档粗略看一下,而不是一开始就问该怎么实现,就算把实现的代码贴出来,你能跑起来,又有什么意义呢?知其然,而不知其所以然,对你学习新的技术真的一点帮助都没有。
    好了,拍砖吧!
    1272729223
        13
    1272729223  
    OP
       2012-07-13 03:35:52 +08:00
    @judezhan 恩 谢谢你的建议! 但是对于我来说,可能更好的方式是先实现效果,回头再去理解他们的原理,这样给我的印象更深刻,光看理论对我而言不是一个很好的学习方法。就象Javascript,核心语言其实我已经认真的读了不少于5遍了,但是至今会的还只是套用别人写的代码。 虽然可能看起来,啊,原来也不难。

    折腾了几天django,urls配置好了,视图也写好了,模板(html)今晚也写好了,现在想弄一个最简单的后台管理系统(只需要一个新闻发布的功能),但是不知道怎么着手了,我不想用django的管理系统,该怎么弄呢?

    我的管理员系统只有这几个界面: 登陆界面,管理界面(只一个发布新闻的按钮和已经发布的新闻列表),发布新闻的界面。 我现在是想搜答案都不知道搜什么,请不令赐教!

    付费500元,在上海地区当面请教! 万分感谢!
    kidblg
        14
    kidblg  
       2012-07-13 08:47:46 +08:00
    @1272729223

    试试django-cms https://www.django-cms.org

    django自带的admin也不错啊,你嵌入一个tinymce就行了, http://imtx.me/archives/215.html
    1272729223
        15
    1272729223  
    OP
       2012-07-13 13:43:21 +08:00
    @kidblg 谢谢 今晚继续折腾! 有没面授的呀! 很期待
    judezhan
        16
    judezhan  
       2012-07-13 15:22:42 +08:00
    @1272729223 ...谈钱伤感情,技术交流就好。我不是很明白,为什么这么简单的需求要用Django来做?如果你是为了学Django,然后弄个项目练练手,这个没问题,但如果你是为了做这个项目而折腾Django,那真的有点不值。老实说Django一般合适中型的项目,小项目用web.py或者bottle之类的就能搞定了。另外,Django还是比较好入手的,先把你的Model定义好,你的项目逻辑这么简单,Model明确了之后直接在views里面写处理http request的函数就好了。然后HTML模板弄弄好就OK了。
    1272729223
        17
    1272729223  
    OP
       2012-07-13 15:29:29 +08:00
    @judezhan 谢谢 我是练手的,想学python和django。 愿意付费请教。 我已经写好views,html模板,还有urls都配置好了,现在可以浏览静态的页面了。 但是就缺少一个后台,我是想自己写一个,接下去就知道怎么去折腾了。
    judezhan
        18
    judezhan  
       2012-07-13 16:37:25 +08:00
    @1272729223 任何应用,数据是核心。先把你的Model定义好。Django一个自认为很NB但其实一直有争议的部分就是他的Middleware, 几乎任何通用的东西你都可以在Middleware完成,包括Auth, Session管理等等。但是一般刚开始学的,可以先试着自己实现(其实那些个Middleware也很简单,有时间可以去看看他们的源码,我一般都会自己写一些Middleware),就拿Auth来说吧,Client POST username/password等数据过来,然后你拿数据去数据库匹配,成功返回正确的内容,失败就返回错误提示。 建议你先熟悉一下Django的http request对象和http response对象,包括他们包含哪些数据等信息。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:25 · PVG 14:25 · LAX 22:25 · JFK 01:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.