zoukankan      html  css  js  c++  java
  • Django 基本操作

    www.djangobook.com
    djangobook.py3k.cn

    1、django-admin.py startproject mysite
    2、manage.py startapp blog
    3、修改文件 setting.py,urls.py
    4、定义了一个index,在blog/views.py
    5、创建了模板,blog/templates/index.html
    6、views.py文件修改
    7、manage.py runserver 启动一个web服务器
    8、模板语法 if 与 for
    % for book in book_list reversed %}
    <li>{{ book }}</li>
    {% if forloop.first %}
    <p>begin</p>
    {% endif %}

    <p>forloop.counter : {{ forloop.counter }}</p>
    <p>forloop.counter0 : {{ forloop.counter0 }}</p>
    <p>forloop.revcounter : {{ forloop.revcounter }}</p>
    <p>forloop.revcounter0 : {{ forloop.revcounter0 }}</p>
    {% if forloop.last %}
    <p>begin</p>
    {% endif %}
    {% empty %}
    <p>没有元素</p>
    {% endfor %}
    {% for key in user %}
    <p>{{ key }}</p>
    {% endfor %}

    {% for key,value in user.items %}
    <p>{{ key }}:{{ value }}</p>
    {% endfor %}
    9、过滤器
    <p>{{ book | upper }}</p>
    <p>{{ book | upper | lower | capfirst }}</p>

    10、自定义过滤器
    在blog中建一个templatetags
    from django import template

    register = template.Library()


    def percent(value):
    return str(value) + "%"


    register.filter(percent)

    使用自定义的过滤器
    {% load percent %}
    <p>{{ data | percent}}</p>

    11、url配置
    (1)在blog的views.py中
    id = request.GET.get('id')
    name = request.GET.get('name')
    地址栏输入请求地址
    http://127.0.0.1:8000/blog/page1/?id=111&name=kingrain
    page.html中
    <p>id is {{ id}}</p>
    <p>name is {{ name}}</p>

    (2)在blog的urls.py中
    url(r'^page2/(d{4})/$', views.page2, name='page2'),
    在blog的views.py中
    def page2(request, p1):
    地址栏输入请求地址
    page2后面必须有4个数字


    在blog的urls.py中
    url(r'^page2/(d{4})/(w+)/$', views.page2, name='page2'),
    在blog的views.py中
    def page2(request, p1,p2):
    地址栏输入请求地址
    page2后面必须有4个数字,在后面必须有数字或字母1个

    在blog的urls.py中
    url(r'^page3/(?P<id>d{4})/(?P<name>w+)/', views.page3, name='page3'),
    在blog的views.py中
    def page2(request, p1,p2):
    地址栏输入请求地址
    page2后面必须有4个数字且必须为id,在后面必须有数字或字母1个且必须为name

    12、orm(一一对应 映射)
    学生:姓名 年龄
    class Student
    name 字符类型
    age 整数类型

    table tb_student

    name varchar(20)
    age int

    原来:select * from tb_student
    现在(orm):Student.getAll()

    13、数据库交互
    添加好类后在控制台执行
    python manage.py migrate
    python manage.py makemigrations blog
    python manage.py makemigrations blog 0001


    从数据库到文件
    python manage.py inspectdb
    python manage.py inspectdb > blog/models.py

    14、
    age__gt = 16(age > 16)
    age__gte = 16(age >= 16)

    __contains (%%)

    15、数据库操作
    查找id 为1 的数据
    student = Student.objects.get(id=1)
    将其名字命名为kingrain
    student.name = "kingrain"
    将其年龄改为18
    student.age = 18
    数据库数据保存
    student.save()
    数据库修改
    将年龄大于20的名字改为xyz
    student_list = Student.objects.filter(age__gt=20).update(name = "xyz")
    数据库新增
    newstudent = Student(name="abc",age=10,time2school="2017-07-10")
    newstudent.save()
    数据库删除
    student = Student.objects.get(id=1)
    student.delete()

     16、修改完数据库后要执行的命令

    python manage.py migrate blog

    python manage.py makemigrations blog

  • 相关阅读:
    介绍一个成功的 Git 分支模型 Release 分支
    启动安卓模拟器报错 emulator: ERROR: x86_64 emulation currently requires hardware acceleration! CPU acceleration status:HAXM must be updated(version 1.1.1<6.0.1) 解决办法
    AceyOffice教程复制行
    AceyOffice教程设置单元格边框
    Excel生成报表之解决方案合并单元格的用法
    AceyOffice教程报表之解决方案(二)
    Excel生成报表之解决方案插入图片
    AceyOffice教程复制列
    Excel基础知识(一)
    AceyOffice教程报表之解决方案(一)
  • 原文地址:https://www.cnblogs.com/iamjqy/p/7145615.html
Copyright © 2011-2022 走看看