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}}

未完待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是在学习https://www.gitbook.com/book/djangogirlstaipei/d...
    LLLeon阅读 1,916评论 0 16
  • 笔记来源:自强学堂-Django教程这个教程真的非常好用!强烈推荐 Django简介-组成部分 urls.py:网...
    LeeLom阅读 1,599评论 0 2
  • 去年的事情特别多,也没有什么时间充电学习。今年目测轻松一点,年初本来计划就好好休息一下,结果一晃2017就度过了一...
    灰豹儿阅读 637评论 0 2
  • mvc model view controldjango-admin startproject 在当前目录创建一个...
    elkelk阅读 199评论 0 0
  • 建立第一个项目 新建工程 进入你要建立工程的目录,键入如下命令(其中mysite是你的项目名称): django-...
    小小白老鼠阅读 742评论 0 1