Django是mvt,m是模型,v是视图,t是模板。 还需要一个url控制器
v是用来处理用户发起请求后,给到用户模板和数据。
# 安装Django
pip install Django==3.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 查看已安装的模块
pip list
# 创建项目
django-admin startproject project
# 启动测试
django-admin manage.py runserver 0.0.0.0:80
# project 项目目录
--project
--project
--urls.py
--settings.py
--__init__.py
--asgi.py
-- wsgi.py
# 默认的project目录里面已经有url控制器了,还需要创建v(视图)、t(模板)、m(模型)
# 创建视图文件 路径 project/project/views.py
import django.shortcuts from render
def index(request):
return render(request,'index.html',{})
# 创建模板 路径 project/templates/index.html
1.在project项目下创建一个templates目录,在创建一个html
2.配置templates的路径,打开project/project/settings.py
3.找到Templates,在'DIRS': []的[]里面加入os.path.join(BASE_DIR, 'templates')
# 打开project/project/urls.py 进行测试
# 用户首先是向url控制器发送请求,用代码去模拟过程
import django.urls from path
urlpatterns = [
path('/index',views.index) # 当用户向127.0.0.1:80/index请求数据的时候,urls会触发views视图,然后视图把模型(m)和模板(t)一并发给用户
]
# 配置静态目录statics 路径 project/statics
1.在statics下创建css目录、js目录、images目录、plugins目录
2.配置statics路径,打开project/project/settings.py
3.在最后面加入以下代码
STATIC_URL = '/static/' # 别名
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "statics"),
]
# 创建m(模型)
django-admin startapp app01
1.django 自带ORM框架
正常情况: python代码 --》 pymysql --》 数据库
ORM情况 : python代码 --》 ORM --》pymysql --》 数据库
在有ORM的情况里,不用去写sql语句
2.安装pymysql pip install pymysql
3.因为ORM只能对数据库表进行操作,所以需要先手动启动myql服务,在创建一个数据库
4.路径配置,以及数据库配置
进入project/project/settings.py,找到INSTALLED_APPS变量名,在列表里最后一行写入app01
在找到DATABASES,把之前的DATABASES注释掉,在加入
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'mydb', # 数据库名称
'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 3306, # 端口
'USER': 'root', # 数据库用户名
'PASSWORD': '', # 数据库密码
}
}
配置完成后就开始创建数据库表
在project/app01/models.py 打开,写入下面代码
from django.db import models
class Test(models.Model): # 继承了models.Model类,每个这样写的都是一个数据库表,这个是App01_Test表
name = models.CharField(max_length=20)
5.在setting.py同级的__init__.py文件写入下面代码
import pymysql
pymysql.install_as_MySQLdb()
6.在命令行输入 python manage.py makemigrations 之后在migrations下面会生成一个非__init__.py的文件
python manage.py migrate 就ok了



