什么是Django?
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。
Django框架介绍:
-
用于创建模型的对象关系映射
-
为最终用户设计的完美管理界面
-
一流的 URL 设计
-
设计者友好的模板语言
-
缓存系统。

创建Djiano项目:
首先安装Djiano:
pip3 install django
创建Djiano项目:
django-admin startproject mysite
Djiano目录介绍:
mysite#对整个文件进行配置
__init__.py
settings.py#配置文件
urls.py #url 和函数或者类对应关系
wsgi.py # 导入模块,本质上创建一个socket
manage.py #管理Django程序
自定义一个url访问:
首先导入返回的模块:
from django.shortcuts import HttpResponse
在urls.py里面定义一个函数:
def home(request):
return HttpResponse("<h1>Hello</h1>")#返回Hello
设定访问目录:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^home/', home),#r设定访问的目录 如http://AbeoHu.com/home 后面的home指的是函数
]
访问127.0.0.1:8000:

创建APP
如果要创建一个CMDB项目,那么CMDB就是一个APP,业务代码要和前端要分开
创建App:
python manage.py startapp cmdb
App目录介绍:
views.py:存放业务代码
比如我们将我们上边的home函数放到这里,url只需要导入模块就可以访问:
views配置:
from django.shortcuts import HttpResponse
def home(request):
return HttpResponse("<h1>Hello</h1>")
urls配置:
url(r'^home/', views.home),
App目录功能:
cmdb
-migraations 数据修改表结构记录
-__init__ 导入文件需要
-admin 后台管理
-tests 单元测试
-views 业务代码
通过Djano去写一个登陆页面:
templates:存放html文件
render 自动打开并返回页面
业务代码文件:

from django.shortcuts import render
from django.shortcuts import HttpResponse
def home(request):
return HttpResponse("<h1>Hello</h1>")
def login(request):
return render(request,"login.html")
# Create your views here.
前端文件:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/commons.css">
<style>
label{
width: 80px;
text-align: right;
display: inline-block;
}
</style>
</head>
<body>
<form action="/login" method="post">
<p>
<label for="username">用户名:</label>
<input id="username" name="user" type="text" />
</p>
<p>
<label for="password">密码:</label>
<input id="password"name="pwd" type="text" />
<input type="submit" value="提交" />
<span style="color: red">{{ error_mag }}</span>
</p>
</form>
</body>
</html>
url文件:

"""web URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse
from cmdb import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^home/', views.home),
url(r'^login/', views.login),
]
显示界面:

配置静态目录:
css、jss文件
首先创建目录存放静态文件
我这里用的static
里面写css样式

body{
background-color: #eeeeee;
}
setting配置让html访问静态文件:

STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),
)
再次访问,生效
OK,现在一个简单的登陆页面做完了,但是,我们提交的页面提交到哪里呢?
默认是提交到login文件里,但是会报错,怎么办?注释文件settings的内容

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
在后台获取用户输入的内容:
用户提交方式有Get和Post
怎么获取?
request参数里面包含了用户所有的信息
request.methord获取用户提交方式
request.POST封装了所有POST方法
return redirect重定向
特殊字符{{error_masage}}

from django.shortcuts import render
from django.shortcuts import HttpResponse,render,redirect
def home(request):
return HttpResponse("<H1>CMDB</H1>")
# Create your views here.
def login(request):
error_mag=""
#request用户所有的信息
if request.method=="POST":
user=request.POST.get("user",None)#获取用户输入的用户
pwd=request.POST.get("pwd",None)#获取用户输入的密码
if user=="root" and pwd=="123456":#做判断
return redirect("http://www.baidu.com")
else:
error_mag="用户名和密码不匹配"
return render(request,"login.html",{"error_mag":error_mag})#返回用户名密码不匹配

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/commons.css">
<style>
label{
width: 80px;
text-align: right;
display: inline-block;
}
</style>
</head>
<body>
<form action="/login" method="post">
<p>
<label for="username">用户名:</label>
<input id="username" name="user" type="text" />
</p>
<p>
<label for="password">密码:</label>
<input id="password"name="pwd" type="text" />
<input type="submit" value="提交" />
<span style="color: red">{{ error_mag }}</span>
</p>
</form>
</body>
</html>
OK,那么简单的登陆页面就做完了,继续做后台界面
之前咱们的登陆界面,登陆成功后是百度页面,那咱们自己做个后台。
后台程序我们在去建立一个home的页面,主要做后台管理

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body style="margin: 0">
<div style="height: 48px;background-color: #dddddd"></div>
<div>
<form action="/home" method="post">
<input type="text" name="username" placeholder="用户名" />
<input type="text" name="email" placeholder="邮箱"/>
<input type="text" name="gender" placeholder="性别"/>
<input type="submit" value="添加" />
</form>
</div>
<div>
<table>
{% for row in user_list %}
<tr>
<td>{{ row.username }}</td>
<td>{{ row.gender }}</td>
<td>{{ row.email }}</td>
</tr>
{% endfor %}
</table>
</div>
</body>
</html>

from django.shortcuts import render
from django.shortcuts import HttpResponse,render
def home(request):
return HttpResponse("<H1>CMDB</H1>")
# Create your views here.
def login(request):
error_mag=""
if request.method=="POST":
user=request.POST.get("user",None)
pwd=request.POST.get("pwd",None)
if user=="root" and pwd=="123456":
return render(request,"home.html")
else:
error_mag="用户名和密码不匹配"
return render(request,"login.html",{"error_mag":error_mag})
userlist=[
{"name":"alex","gender":"男","email":"alex@163.com"}
]
def home(request):
if request=="POST":
u=request.POST.get("username")
g=request.POST.get("gender")
e=request.POST.get("email")
temp={"name":u,"gender":g,"email":e}
userlist.append(temp)
return render(request,"home.html",{"user_list":userlist})
来源:https://www.cnblogs.com/AbeoHu/p/6135022.html
