一、python环境
PyCharm或者VSCode搭建Python环境
Anaconda的python环境
二、pip install django
MVC:
M:model
V:view html jsp
C:controller 控制层
djangoL:
M:model
V:视图渲染控制器
T:视图层 模板 templates文件夹下(配置文件中默认) html格式
三、创建django工程
Path中添加环境变量:
//django包路径
D:\SoftWare\Code\Anaconda3\Lib\site-packages\django
D:\SoftWare\Code\Anaconda3\Scripts
- 在d盘创建PythonWorkSpace文件夹,在cmd切换到此路径下:
输入创建项目指令:
django-admin startproject 项目名(mydjango)
输入查看文件树指令:
tree /f
查看文件树,发现多了mydjango文件夹和其他项目文件。
- 编译工程
cmd切换到mydjango文件夹下,运行
python manage.py makemigrations
目录结构出现.pyc的二进制文件
manage.py管理整个项目,轻易不要更改
db.sqlite3:django自带的数据库
mydjango:
settings.py:配置数据库等的配置文件
urls.py:正则表达式匹配路径(url),找到对应的视图控制器
wsgi.py:
- 启动项目
python manage.py runserver
django自带apache的http服务器,默认端口127.0.0.1:8000
- 访问端口127.0.0.1:8000
- manage.py的main方法:程序的入口,加载默认配置
settings.py:
应用列表
中间件
模板templates
databases数据库
四、创建应用app01
-
切换到mydjango文件夹下:
python manage.py startapp app01(应用名称)
app01文件夹:
__init.py__初始文件
views.py:
urls.py
-
app01下面创建文件夹templates,在此文件夹下创建
index.html:
<h1>hello,django</h1>
扩展中搜索插件:HTML CSS Support和HTML Snippets
-
匹配url
from app01 import views as app01_v urlpatterns = [ path('admin/', admin.site.urls), path('',app01_v.gotoIndex), ]
定义视图渲染控制器函数函数
def gotoIndex(request): return render(request,"index.html")
settings.py找到
INSTALLED_APPS
标签,并添加'app01',
程序名添加的程序名在apps.py中定义:
apps.py:name="值"
-
重启服务
python manage.py runserver
-
访问端口127.0.0.1:8000
五、引入静态文件
index.css:
h1{
color:red;
}
在app01下创建static文件夹,在此文件夹下创建css文件夹,在css文件夹中创建index.css
在index.html中引入:
<link rel="stylesheet" href="../static/css/index.css" />
mydjango重启服务:
python manage.py runserver
访问8000端口:
六、请求的方式
get请求:
<a href="add/?num1=10&num2=20">计算两个数之和</a>
path("add/",app01_v.add),
from django.http import *
def add(request):
#获取路径中的参数
num1=request.GET.get("num1")
num2=request.GET.get("num2")
res=num1+num2
return HttpResponse(str(res))
七、第二种请求方式
get请求:
<a href="add2/10/20">第二种请求方式,计算两个数之和</a>
urls.py中用正则表达式匹配参数:
from django.contrib import admin
from django.urls import *
from app01 import views as app01_v
urlpatterns = [
path('admin/', admin.site.urls),
path('',app01_v.gotoIndex),
path("add/",app01_v.add),
re_path("add2/(\d+)/(\d+)",app01_v.add2),
]
def add2(request,num1,num2):
res=int(num1)+int(num2)
return HttpResponse(str(res))