1.Django概述
- 用于创建模型的对象关系映射;
- 为最终用户设计较好的管理界面;
- URL 设计;
- 设计者友好的模板语言;
- 缓存系统。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
层次 | 职责 |
---|---|
模型(Model),即数据存取层 | 处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 |
模板(Template),即表现层 | 处理与表现相关的决定:如何在页面或其他类型文档中进行显示。 |
视图(View),即业务逻辑层 | 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。 |
2.Django项目环境搭建
2.1创建并激活虚拟环境
python -m venv djangoenv #创建虚拟环境
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
djangoenv\Scripts\activate #激活虚拟环境
2.2安装django模块
cd D:\djangotest
djangoenv\Scripts\activate
#2安装django模块
pip install Django #激活虚拟环境后安装Django模块
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
cd D:\djangotest
djangoenv\Scripts\activate
#2创建一个loginweb的项目
django-admin startproject loginweb
或者
python -m django startproject loginweb
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
- 外层的loginweb目录:是项目的容器,Django不关心它的名字,我 们可以将它重命名为任何我们喜欢的名字
- 里面的loginweb目录:它是一个纯python包。我们可以称呼它为项目的名称,不能随意重命名
- manage.py :它是Django的一个非常重要的工具,通过它可以调用 django shell和数据库等,如:创建app应用程序、创建数据库表、清 空数据、启动项目等操作
- settings.py :Django 项目的配置文件。包含了项目的默认设置,包 括数据库信息,调试标志以及其他一些工作的变量
- urls.py :Django 项目的URL路由声明,负责把URL模式映射到应用 程序
- wsgi.py:Web服务器网关接口(Python Web Server Gateway Interface的缩写),Python应用和Web服务器之间的一种接口,可以 看成是一种协议、规范。它是基于Http协议的,不支持WebSoket
- asgi.py:异步网关协议接口,能够处理多种通用的协议类型,包括 HTTP,HTTP2和WebSocket,可以看成ASGI是WSGI的扩展
3.Django开发登录功能
3.1创建app应用程序
cd D:\djangotest
djangoenv\Scripts\activate
#2切到django项目中
cd loginweb
#3创建一个叫login的应用
django-admin startapp login
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
3.2注册app
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
3.3Django视图
from django.http import HttpResponse
# Create your views here.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
def login(request):
return HttpResponse("登录页面")
3.4Django路由
from django.contrib import admin
from django.urls import path
from login import views
urlpatterns = [
path("admin/", admin.site.urls),
path("login/",views.login)
]
3.5启动Django项目
#[port] 为应用访问端口,可以缺省不写,默认为8000。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
3.6登录功能改良
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html </body> def login(request): return render(request,'login.html')文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html def index(request):
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<style>
body{
text-align:center;
}
</style>
</head>
<body>
<form action="/login/" method="post">
{% csrf_token %}
<h1 align="center">登录页面</h1>
<p class="divs">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" align="center">
</p>
<p class="divs">
   <label for="password">密码:</label>
<input type="password" id="password" name="password">
</p>
<input type="submit" value="登录">
<span style="color:red">{{ error }}</span>
</form>文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这里是主页</title>
<style>
h1 { color:red }
</style>
</head>
<body>
<h1>这里是主页</h1>
</body>
</html>
# Create your views here.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
if request.method == 'POST':
username = request.POST.get('username')
passowrd = request.POST.get('password')
if username=='songqin' and passowrd =='123456':
return redirect('/index')
else:
return render(request,'login.html',{"error":"用户名或密码错误"})文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
return render(request,'index.html')
from django.urls import path
from login import views
urlpatterns = [
path("admin/", admin.site.urls),
path("login/",views.login),
path("index/",views.index)
]
#[port] 为应用访问端口,可以缺省不写,默认为8000。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/64904.html