一:安装和创建一个Django项目
1.安装Django包
pip install django
2.创建一个Django项目的命令
django-admin startproject +(文件名称)
django-admin startproject my_site
3.运行Django文件
注意:该命令必须在你创建的Django文件目录下,即manage.py的上一级文件目录下
python manage.py runserver
请记住Django项目没有停止命令,他会一直运行,即使你修改文件,它会自动保存,并做出修改。
注意:使用上面的命令所开启的服务的端口号,是8000,更改端口号的方法是:
python manage.py runserver 0.0.0.0:8001
4.对已经创建的Django项目内自动创建的文件做出分析
mysite
manage.py #管理程序的文件,启动和结束等。
my_site
_init_.py
settngs.py #程序的配置文件,内含模块
urls.py #程序的路由系统,即:url和处理其函数的对应关系
wsgi.py #指定框架的wsgi
二:完成第一个Django请求
1.创建app(这是Django项目运行的必须一步)
创建命令是:
django-admin startapp app01
分析app内的文件结构以及作用
app01
_init_.py包
admin.py 数据库后台
app.py #django 把项目与app 关联起的文件
migrations #与数据库相关
_init_.py
model.py #数据库操作地方
tests.py #单元测试
views.py #业务逻辑代码
2.完成第一个Django的请求
(1)匹配路由 ,路由分发器查找用户请求的url地址
1.找到了业务函数,就调用
2.找不到就报404
(2)业务函数,执行业务逻辑‘
(3)返回数据给游览器
执行一个最简单的django的请求,首先要在路由分发器文件中,增加一个路由即(urls.py)文件
urls.py代码:
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/',views.view_login)
]
接下来在视图层将发送数据给游览器
views.py文件
from django.shortcuts import render,HttpResponse
# Create your views here.
# views.py文件中的所有函数,方法的参数必须是request
# request表示接收游览器返回服务器的数据
def view_login(request):
print("该业务已经执行到这里")
print(dir(request))
return HttpResponse("<h1 style='color:red'>人不度人天渡人</h1>")
三:将一个html文件传输到前端
第一步:是在urls.py文件中定义一个路由,和创建一个存放html文件的文件夹
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test',views.test_view),
path('loginIn',views.login_view)
]
login.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册登录界面</title>
</head>
<body>
<div class="container right-panel-active">
<!-- 注册 -->
<div class="container_form container--signup">
<form action="#" class="form" id="form1">
<h2 class="form_title">Sign Up</h2>
<input type="text" placeholder="User" class="input" />
<input type="email" placeholder="Email" class="input" />
<input type="password" placeholder="Password" class="input" />
<button class="btn">Sign Up2</button>
</form>
</div>
<!-- 登录 -->
<div class="container_form container--signin">
<!-- <form action="#" class="form" id="form2">-->
<!-- <h2 class="form_title">Sign In</h2>-->
<!-- <input type="text" placeholder="Useranme" id="username" class="input" />-->
<!--<!– <input type="text" placeholder="Username" id="username" class="input" />–>-->
<!-- <input type="password" placeholder="Password" id="password" class="input" />-->
<!-- <button class="btn" onclick="fff()">Sign In1</button>-->
<!-- </form>-->
<!-- 注意注意注意-->
<form action="/index" class="form">
<h2 class="form_title">Sign In</h2>
<input type="username" placeholder="Useranme" id="username" class="input" />
<!-- <input type="text" placeholder="Username" id="username" class="input" />-->
<input type="password" placeholder="Password" id="password" class="input" />
<button class="btn" >Sign In1</button>
<!-- <button type="submit" onclick="fff()">sign in</button>-->
</form>
</div>
<!-- 浮层 -->
<div class="container_overlay">
<img class="container_overlay_img">
<div class="overlay">
<div class="overlay_panel overlay--left">
<button class="btn" id="signIn">Sign In</button>
</div>
<div class="overlay_panel overlay--right">
<button class="btn" id="signUp">Sign Up</button>
</div>
</div>
</div>
</div>
<!-- 背景 -->
<div class="slidershow">
<div class="slidershow--image" style="background-image: url('https://source.unsplash.com/Snqdjm71Y5s')"></div>
<div class="slidershow--image" style="background-image: url('https://source.unsplash.com/5APj-fzKE-k')"></div>
<div class="slidershow--image" style="background-image: url('https://source.unsplash.com/wnbBH_CGOYQ')"></div>
<div class="slidershow--image" style="background-image: url('https://source.unsplash.com/OkTfw7fXLPk')"></div>
</div>
</body>
</html>
第二步:::重点!重点!重点!
Django框架在settings.py文件定义了固定的模板,负责处理html文件
BASE_DIR = Path(__file__).resolve().parent.parent
#BASE_DIR拿到该项目的根路径
TEMPLATES = [ #模板,处理html文件夹
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#请注意该路径必须使用绝对路径,相对路径会找不到
'DIRS': [os.path.join(BASE_DIR,"html")], #html文件夹的位置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
第三步:找到html文件,打开读取
在views.py文件中定义一个函数要与urls.py文件中调用的函数命名相同
from django.shortcuts import render,HttpResponse
# Create your views here.
# views.py文件中的所有函数,方法的参数必须是request
# request表示接收游览器返回服务器的数据
def view_login(request):
return render(request,'login.html')
四:WEB开发的套路
1.MVC
MVC是一种使用MVC(Model View Controller 模型-试图-控制器)设计创建web应用程序的模式
- Model(模型)一般对应数据库操作,记录的存取
- View(试图)决定这如何展示数据
- Controller(控制器)负责处理用户交互的部分,控制器负责从试图的去数据,控制用户输入,并向模型发送数据。
2.MTV
Django是一个MTV框架,其看上去与MVC传统的MVC架构并没有太大的区别。
Django将MVC中的视图进一步分解为Django试图和Django模板两部分,分别决定“展现哪些数据”和“如何展现”,是的Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板,至于MVC控制器部分,由Django框架的URLconf来实现.