django03

作者: 水果坚果燕麦片 | 来源:发表于2019-03-20 19:50 被阅读0次

根据实体模型进行模块拆分

如当我创建了两个模块:python manage.py startapp app
python manage.py startapp goods
那么我就会获得2个模块分别拥有models.py views.py urls.py
(虚拟环境创建: virtualenv --no-site-packages -p python.exe路径 环境名
安装: pip install django==2.1.7
需要再虚拟环境被激活(env的Script文件夹下activate)的情况下才能使用此命令
创建项目django-admin startproject 项目名day01
day01.urls.py配置总的模块路由

from django.urls import path, re_path, include
urlpatterns = [

    # 注意 app和goods后面的/ ,在访问对应的模块的时候需要加上对应的前缀

    path('app/', include('app.urls')),
    path('goods/', include('goods.urls'))
]

例如在app.urls中页面的配置信息有

path('str_params/<str:name>/', str_params),
# 解析path中的正则表达式
re_path('year_params/(\d+)/(\d+)/(\d+)/', year_params)
# 地址栏传参的时候不是按顺序而是给定具体参数
re_path('p_params/(?P<year>\d+)/(?p<month>\d+)/(?P<day>\d+)', p_params)

对应的app.views

def str_params(request, name):
  if request.method == 'GET':
    return Httpresponse('name %s' % name)
 def index(request):
    if request.method == 'GET':
        # TODO:render(request)
        stus =Student.objects.all()
        content_h2 = '<h2>hello world</h2>'
        return render(request, 'index.html' ,
                      {'students':stus,  'content_h2':content_h2})

index.html如下

{% block content %}
    {{ content_h2 | safe }}
    <table>
        <thead>
            <th>编号</th>
            <th>姓名</th>
            <th>手机号</th>
            <th>班级名</th>
            <th>课程名</th>
            <th>第一个课程</th>
            <th>创建时间</th>
        </thead>
    <tbody>
    {% for stu in students %}
        <tr>
            <td>{{ forloop.counter }}</td>
            <td {% ifequal forloop.counter 1 %} style="color: yellowgreen" {% endifequal %}>{{ stu.s_name }}</td>
            <td>{{ stu.stuinfo.phone }}</td>
            <td>{{ stu.grade.g_name }}</td>
            <td>
                {%  for cou in stu.course.all %}
                    {{ cou.c_name }}
                {% endfor %}
            </td>
            <td>
                {{ stu.course.all.0.c_name }}
            </td>
            <td>{{ stu.create_time }}</td>
        </tr>
    {% endfor %}
    </tbody>
    </table>
{% endblock %}

相关文章

  • django03

    根据实体模型进行模块拆分 如当我创建了两个模块:python manage.py startapp apppyth...

  • Django03模板提取

    静态目录 配置静态目录 STATIC_URL配置的静态目录位于项目根目录下的static文件夹,用于保存项目公共的...

  • django03一对多关系

    逻辑删除isdel objects管理器(Manager对象)自定义管理器class studentManager...

网友评论

      本文标题:django03

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