django学习笔记

安装 - 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学习笔记)