美文网首页
django学习笔记

django学习笔记

作者: Air_cc | 来源:发表于2015-04-14 13:58 被阅读197次

    安装 - pip install django


    验证:

    >>> import django
    >>> print(django.get_version())
    1.8
    

    开始第一个实例

    django官方指南


    1. 创建项目


    • 创建项目 django-admin startproject siteName
        mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
    
    • settings.py中的相关设置
      1. 数据库设置 -- 这里使用默认的SQLite3
      2. TIME_ZONE
      3. INSTALLED_APPS - manage.py migrate
    • 验证 - manage.py runserver ip:port
    • 创建应用模块 - manage.py startapp appName
    polls/
        __init__.py
        admin.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    
    • models.py中创建数据的model
    • 将appName加入到INSTALLED_APPS
      再执行 manage.py makemigrations appName

    you’re telling Django that you’ve made some changes to your models

    • 在数据库中创建model表 - manage.py migrate

    before this, run manage.py sqlmigrate polls 0001 can see what SQL that migration would run

    • 可在django shell中已类的方式操作db中的modul

    2. 创建admin


    • manage.py createsuperuser
    • lcoalhost:8000/admin/
    • 在admin.py中注册待管理的modul
    注:卡住的地方
    1. 修改页面title及项目名称时,直接在base_site.html中修改不起作用
      原因: 在django的导入文件中有默认定义,需要删除

    3. 创建视图

    • 在应用目录下创建urls.py 来解析本应用中的views
    • 在项目管理目录下的urls.py文件中添加对应用目录的解析
    注:卡住的地方
    1. 配置好url后访问 localhost:8000/polls 返回polls未定义
      原因:浏览器没有在请求url后面自动添加'/', 导致目录无法解析, 需手动添加

    4. 使用通用的视图


    • 在应用template中添加表单提交的模板html
    • 通过views.generic重写, 通过pk查找
      涉及的views:
      generic.ListView - 获取model实例对象列表,
      generic.DetailView - 获取单个数据数据对象的信息

    5. 测试

    balabalabala

    详细用法


    1. template


    1. 基本语法
    • 变量\成员变量\成员函数:
      {{ varName }} \ {{className.name}} \ {{className.getName}}
    • if 语句
    • 没有()条件的用法
    * 逻辑判断 `and` `or` `not`
    
    {% if %}
    ...
    {% elif  %}
    ...
    {% endif %}
    
    • for 语句
    • 没有 break continue的用法
    * for关键字: `empty` `reversed` 
    * forloop相关:
    

    forloop.counter forloop.counter0 forloop.revcounter forloop.revcounter0 forloop.first forloop.last

    {% for k in list reversed %}
     ...
    {% empty %} -- 如果没有list
     ...
    {% if forloop.first %}
    ...
    {% endif %}
    ...
    {% if forloop.last%}
    ...
    {% endif %}
    {% endfor %}
    
    1. 过滤器
    • django自带 - |

    例如:

    {{ timenow | date:"Y-m-d" }}
    {{ txt | upper}}
    
    • 自定义
    • 在应用下面创建名为templatetags文件夹, 创建__init__.py
    * 创建相应的过滤器文件, 定义过滤器处理函数, 注册到模板库中
    * 在使用之前,先将过滤器文件load进来 
    

    目录: appName/templatetags/filter_test.py

    import django from template 
    def test_func_fliter(value):
        return value
    register = template.Library()
    register.filter(test_func_filter)
    

    目录:appName/templates/view_template.htnl

    {% load filter_test %}
    {{ varilables | test_func_fliter}}
    

    未完待续...

    相关文章

      网友评论

          本文标题:django学习笔记

          本文链接:https://www.haomeiwen.com/subject/yyotfttx.html