• django开发框架-view & template


    django框架的主要模型是MVT,Model模型,View视图,Template模板,基于基本的HttpRequest方式。

    django支持的数据库有四种:PostgreSQL,MySQL, Oracle,SQLite3。(所以目前应该把精力放在PostgreSQL上)

    1.新建工程:django-admin.py startproject mysite,新建的mysite的目录下有四个文件:__init__.py, manage.py, settings.py, urls.py 。

    2.运行开发服务器:python manage.py runserver。(这是内建的、轻量的web服务)(如何非本地IP访问?)

    3.

    4.

    5.

    6.

    7.

    8.

    9.(忘记保存了,我草)

    10.模板的深度变量查找:使用句点符号 . 。据点查找规则:字典类型查找,属性查找,方法调用,列表类型索引查找。设置函数属性function.alters_data = true ,在模板载入时,方法就不会执行。如果变量不存在,就处理成空字符串。context对象可以像字典一样insert, delete。

    11.模块标签:if/else {% if bool %} ... {% else %} ... {% endif %}, if标签不允许在同一个标签中使用 and 和 or ,不支持用圆括号来组合比较操作。for {% for athlete in athlete_list %} ... {% endfor %} ,for 标签还有一个可选的 {% empty %}标签,当列表为空时使用。有一个forloop的模板变量。ifequal/ifnotequal 标签,只有模板变量,字符串,整数和小数可以作为该标签的参数。注释 {# comment #} ,多行注释 {% comment %} ... {% endcomment %}。 过滤器使用管道字符,可以套接,过滤器参数跟随冒号之后并且总是用双引号包含。

    1 def current_time(request):                                                  |   ~                          
    2  10     now = datetime.datetime.now()                                           |   ~                          
    3  11     t = get_template('mytemplate.html')                                     |   ~                          
    4  12     html = t.render(Context({'current_date': now}))                         |   ~                          
    5  13     return HttpResponse(html)

    12.先在settings.py中设置template_dirs,然后编写html代码,再到views.py中编写对应的视图代码。

    1 def current_time(request):
    2     now = datetime.datetime.now()
    3     return render_to_response('mytemplate.html', {'current_date': now})

    另一种写法:使用python的内建函数locals()

    def current_time(request):
        current_date = datetime.datetime.now()
        return render_to_response('mytemplate.html', locals())

    get_template()函数可以使用子目录。

    13.include模板标签。模板继承,代码示例:

    base.html:

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
     2 <html lang="en">
     3 <head>
     4     <title> {% block title %}{% endblock %} </title>
     5 </head>
     6 <body>
     7     <h1> My helpful timestamp site </h1>
     8     {% block content %}{% endblock %}
     9     {% block footer %}
    10     <hr>
    11     <p>Thank for visiting my site.</p>
    12     {% endblock %}
    13 </body>
    14 </html>

    current_date.html:

    1 {% extends "base.html" %}
    2 
    3 
    4 {%block title%}The current time{% endblock %}
    5 
    6 {%block content%}
    7 <p>It is now {{ current_date }}.</p>
    8 {% endblock %}

    简单的视图模式和模板模式介绍完毕。

  • 相关阅读:
    上海上传数据重复-sftp端口关闭
    探索对象池技术
    java对象池commons-pool-1.6详解(一)
    SSH 协议的 ssh StrictHostKeyChecking
    FTP、FTPS和SFTP
    android 模拟器无法ping通主机
    Android中判断网络连接是否可用及监控网络状态
    Android模拟器怎么配置网络连通
    Android Studio调试报错am startservice
    Jni的Jclass JmethodID JfrieldID的差异
  • 原文地址:https://www.cnblogs.com/nuaalida/p/4338244.html
Copyright © 2020-2023  润新知