S14day19---->urls.py

from django.contrib import admin
from django.conf.urls import url,include

urlpatterns = [
    url(r'^cmdb/',include('app01.urls')),
    url(r'^monitor/',include('app02.urls')),
]

'''
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # url(r'^index999999999/(\d+)/(\d+)/', views.index,name='indexx'),
    url(r'^index999999999/(?P<nid>\d+)/(?P<uid>\d+)/', views.index,name='indexx'),
    url(r'^login/',views.login),
    url(r'^home/',views.Home.as_view()),
    # url(r'^detail/',views.detail),
    # url(r'^detail-(\d+).html',views.detail),
    # url(r'^detail-(\d+)-(\d+).html',views.detail),
    # url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html',views.detail),
    url(r'^detail-(?P<nid>\d+).html',views.detail),
]
'''
# url(r'^detail-(\d+).html',views.detail),  这种情况Django会传递一个参数给detail函数 一个正则对应一个参数

App01--->urls.py

from django.contrib import admin
from django.conf.urls import url
from app01 import views

urlpatterns = [
    url(r'^login/', views.login),
]

App02-->urls.py

from django.contrib import admin
from django.conf.urls import url
from app02 import views

urlpatterns = [
    url(r'^login/', views.login),
]

App01-->views.py

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.

# USER_DICT={
#     "k1": "root1",
#     'k2': "root2",
#     'k3': "root3",
#     'k4': "root4",
#     'k5': "root5",
#     'k6': "root6",
# }

USER_DICT={
    '1': {'name':'root1', 'email':'root1@live.com'},
    '2': {'name':'root2', 'email':'root2@live.com'},
    '3': {'name': 'root3',  'email': 'root3@live.com'},
    '4': {'name': 'root4',  'email': 'root4@live.com'},
    '5': {'name': 'root5',  'email': 'root5@live.com'},
    '6': {'name': 'root6', 'email': 'root6@live.com'},
}

# USER_LIST=[
#     {'name':'root1'},
#     {'name':'root2'},
#     {'name':'root3'},
#     {'name':'root4'},
# ]
# {% for item in user_list%}



def index(request,nid,uid):
    #indexx
    print(request.path_info)
    from django.urls import reverse
    # v=reverse('indexx', args=(60,50,))
    v=reverse('indexx',kwargs={'nid':1,'uid': '30'})
    print(v)

    return render(request,'index.html',{'user_dict':USER_DICT})

# def detail(request):
#     nid=request.GET.get('nid')
#     detail_info=USER_DICT[nid]
#     return render(request,'detail.html',{'detail_info':detail_info})

def detail(request,nid):
    # return HttpResponse(nid)
    # detail_info=USER_DICT[kwargs['nid']]
    detail_info=USER_DICT[nid]
    return render(request,'detail.html',{'detail_info':detail_info})

def login(request):
    if request.method=="GET":
        return render(request,'login.html')

    elif request.method=="POST":
        # v=request.POST.get('radio')
        # print(v)
        # v=request.POST.getlist('city')
        # print(v)
        # v=request.POST.get('fafafa')
        # print(v)
        obj=request.FILES.get('fafafa')
        print('obj',obj.name)
        import os
        file_path=os.path.join('upload',obj.name)
        f=open(file_path, mode="wb")
        for i in  obj.chunks():
            f.write(i)
        f.close()
        from django.core.files.uploadedfile import InMemoryUploadedFile
        return render(request,'login.html')

    else:
        #put ,DELETE,HEAD,OPTION
        return redirect('/index/')

# def login(request):
#     if request.method=="GET":
#         return render(request,'login.html')
#
#     elif request.method=="POST":
#         u=request.POST.get('user')
#         p=request.POST.get('pwd')
#         if u=='alex' and p=='123':
#             return redirect('/index/')
#         else:return render(request,'login.html')
#
#     else:
#         #put ,DELETE,HEAD,OPTION
#         return redirect('/index/')

# 查看模块源代码:ctrl+B

from django.views import View
class Home(View):

    def dispatch(self,request,*args,**kwargs):
        #调用父类中的dispatch
        print('before') #可自定一些操作
        result= super(Home,self).dispatch(request,*args,**kwargs)
        print('ater')  #可自定一些操作
        return result

    # get请求执行get post请求执行post方法
    def get(self,request):
        print(request.method)
        return render(request,'home.html')

    def post(self,request):
        print(request.method)
        return render(request,'home.html')

App02--->views.py

from django.shortcuts import render,HttpResponse

# Create your views here.
def login(request):
    return HttpResponse('app02,login')

Templates--->index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--
    <ul>
        {% for k in user_dict.keys%}
            <li>{{k}}</li>
        {% endfor %}
    </ul>
    <ul>
        {% for row in user_dict.values %}
            <li>{{ row }}</li>
        {% endfor %}
    </ul>
    <ul>
        {% for k,row in user_dict.items %}
            <li><a target="_blank" href="/detail/?nid={{k}}">{{ row.name }}</a></li>
        {% endfor %}
    </ul>
      -->
    <form action="{% url 'indexx'  nid=1 uid=3 %}" method="post">
{#        <form action="{{ request.path_info }}" method="post">#}
       <p> <input type="text" name="user" placeholder="用户名"></p>
       <p><input type="text" name="email" placeholder="邮箱"></p>
       <input type="submit" value="提交">
    </form>
    <ul>
        {% for k,row in user_dict.items %}
            <li><a target="_blank" href="/detail-{{ k }}.html">{{ row.name }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>

{# /index/  指127.0.0.1/index/ #}

{#默认循环keys#}
{#{% for key,row in user_dict.items %} 循环key value#}
{#{% for key,row in user_dict.keys %} 循环key#}
{#{% for key,row in user_dict.values %} 循环value#}

Templates-->login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/cmdb/login/" method="post" enctype="multipart/form-data">
        <p>
            <input type="text" name="user" placeholder="用户名">
        </p>
        <p>
            <input type="password" name="pwd" placeholder="密码">
        </p>
        <p>
            男:<input type="radio" name="gender" value="1">
            女:<input type="radio" name="gender" value="2">
        </p>
         <p>
            男:<input type="checkbox" name="favor" value="11">
            女:<input type="checkbox" name="favor" value="22">
        </p>
        <p>
            <select name="city" multiple>
                <option value="sh">上海</option>
                <option value="bj">北京</option>
                <option value="tj">天津</option>
            </select>
        </p>
        <p>
            <input type="file" name="fafafa">
        </p>
        <p>
            <input type="submit" value="提交">
        </p>
    </form>
</body>
</html>

Templates-->detail.py

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>详细信息</h1>
    <h6>用户名:{{ detail_info.name }}</h6>
    <h6>邮箱:{{ detail_info.email }}</h6>
</body>
</html>

Templates-->home.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/home/" method="post">
        <input type="text" name="user"/>
        <input type="submit"/>
    </form>
</body>
</html>

django实例(2)的更多相关文章

  1. Web框架本质及第一个Django实例 Web框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  2. Django实例

    更新:今年8月在深圳和嵩天老师居然见面了,很开心.嵩天老师很和蔼. =========== 今天看了嵩天老师的视频,感觉讲的很好,于是看着视频自己做了一个初步的实例认识. 步骤1,新建一个Web框架 ...

  3. 【Django实例】博客1

    (上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...

  4. django实例收集

    django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...

  5. Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  6. WEB框架本质和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...

  7. Django之Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  8. Django学习笔记之Web框架由浅入深和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  9. DAY15-web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  10. Web的本质以及第一个Django实例.

       Web框架的本质:    所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...

随机推荐

  1. 理解 SystemVerilog 中的循环与并发线程

    1. 首先理解 scope 的概念 除了常见的module.interface.class.task以及function等等,另外,begin-end block 和 fork-join block ...

  2. springboot+easypoi模板导出Excel 动态表头+多表格(一个sheet)

    1.需求:将此页面的几个表格导出 其中表头中的仓库 集散地是是动态生成的. 首先制作Excel模板: 代码: @Resource private RedisService redisService; ...

  3. 微信企业付款到零钱(Java版)

    订阅专栏1.开通条件. 商户注册超过90天且,连续30天有交易,可以每天支付1元来刷,目前测试可行.随后在微信商户平台 - 产品管理自动开启,然后需要申请. 疑问: 话说是要有公众号appid才行,但 ...

  4. 雷电4扩展坞HDMI显示器无法睡眠问题

    背景: 最近使用Dell的雷电4扩展坞WD22TB4,感觉很爽,取电脑时,不用再拔显示器.鼠标.键盘,直接把雷电4接口拔出即可. 后来通过windows update升级了intel显卡驱动后,发现电 ...

  5. Typecho去除更新检测和后台日志

    Typecho去除官方日志 打开 admin/index.php,找到下面的代码并删除,在 93-102 行. 代码: <div class="col-mb-12 col-tb-4&q ...

  6. Keepalived学习,双机主备高可用

    一.主机安装 1.解压 tar -zxvf keepalived-2.0.18.tar.gz 2.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了 3.使用configure ...

  7. IvorySQL v4 逻辑复制槽同步功能解析:高可用场景下的数据连续性保障

    功能简介 IvorySQL v4 基于 PostgreSQL 17,引入了逻辑复制槽同步至热备份数据库的功能.这一改进有效解决了旧版本中主数据库与备份数据库切换后逻辑复制中断的问题.对于那些追求数据高 ...

  8. 一个专业DBA应具备的技能

    本文可以作为MySQL DBA面试官,以及候选人的双向参考 面试流程 接下来先说下我以往在做MySQL DBA面试时的过程(套路): 1.先自我介绍后,再让候选人花2-5分钟做下自我简介有不少人可能对 ...

  9. 可视化|数据可视化文档之 echarts 项目初始化

    数据可视化文档之 echarts 项目初始化 环境搭建 # node 环境 nvm install v11.15.0 # or nvm use 11.15.0 # 查看 node 版本 node -V ...

  10. IDA Pro分析dll在exe中的表现

    尝试分析隐式加载和显式加载的dll在exe中进行反汇编时的表现. 1. 测试条件 (1)动态库 testdll1  导出函数 int add(int, int) 和  int add2(int, in ...