django实例(2)

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)的更多相关文章
- Web框架本质及第一个Django实例 Web框架
Web框架本质及第一个Django实例 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...
- Django实例
更新:今年8月在深圳和嵩天老师居然见面了,很开心.嵩天老师很和蔼. =========== 今天看了嵩天老师的视频,感觉讲的很好,于是看着视频自己做了一个初步的实例认识. 步骤1,新建一个Web框架 ...
- 【Django实例】博客1
(上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...
- django实例收集
django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...
- Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- WEB框架本质和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...
- Django之Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Django学习笔记之Web框架由浅入深和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- DAY15-web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Web的本质以及第一个Django实例.
Web框架的本质: 所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...
随机推荐
- [BZOJ2194] 快速傅立叶之二 题解
看名字,然后准备转化为多项式乘法. \[c_k=\sum_{i=0}^{n-k-1}a_{i+k}b_i \] 将 \(a\) 反转,得: \[c_k=\sum_{i=0}^{n-k-1}a_{n-i ...
- 软件工程: SDLC V模型
V型 V-model 代表一个开发过程,可以被认为是瀑布模型的扩展,是更通用的 V-model 的一个例子.不是以线性方式向下移动,而是在编码阶段之后向上弯曲工艺步骤,以形成典型的 V 形.V 模型展 ...
- mybatis - [08] mybatis-config.xml 详解
mybatis-config.xml中的标签需要按照一定顺序配置,否则会有以下提示. configuration(配置) properties(属性) settings(设置) typeAliases ...
- CentOS7安装部署ClickHouse(单机版&&集群部署)
1.1 什么是ClickHouse ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报 ...
- DeepSeek 不太稳定?那就搭建自己的 DeepSeek 服务
概述 DeepSeek-R1 发布 DeepSeek 在 2025 年给我们送来一份惊喜,1 月 20 号正式发布第一代推理大模型 DeepSeek-R1.这个模型在数学推理.代码生成和复杂问题解决等 ...
- 【Matlab】基于KDtree的最近邻搜索和范围搜索
摘要:介绍Matlab的rangesearch()函数和knnsearch()函数. rangesearch() -- 根据给定k-维数据集,返回指定距离范围内的所有数据点 knnsearch() - ...
- 【MathType】word2016数学公式编号
问题 毕业论文排版中,对数学公式需要类似(3-1)的格式. 解决技巧 在写论文初稿的时候,先不要于公式的编号,先给它编一个号,比如(3) (2) (4)的. 最后写完了以后,再再添加section , ...
- 130道基础OJ编程题之: 89~107
130道基础OJ编程题之: 89~107 @ 目录 130道基础OJ编程题之: 89~107 89. BC101 班级成绩输入输出 99. BC102 矩阵元素定位 100. BC103 序列重组矩阵 ...
- docker-compose up -d 运行容器秒自动停止解决方案
正常的我们运行Docker-Compose的服务 docker-compose -f docker-compose.yml up -d mysql-setup 执行Docker ps 查看存活的容器 ...
- Win7共享账号切换程序
服务器共享目录需要多账号登录时,需要重启电脑才可切换不同账号登 为了不重启电脑就可立即切换不同账号登,特意写了此款软件, 下载: 链接:https://pan.baidu.com/s/1g_4SCXl ...