创建Django项目
javascriptdjango-admin startproject 项目名称
启动Django
python manage.py runserver
python manage.py runserver 80
python manage.py runserver 0.0.0.0:80
给Django项目创建app 创建后需要注册
python manage.py startapp app名称
创建后在models.py下创建类,进行数据库表相关部署
from django.db import models
# Create your models here.
class User(models.Model):
username = models.CharField(max_length=32) # varchar()
password = models.CharField(max_length=32)
- 创建完成后需要先创建迁移文件,然后迁移置数据库 每次数据库操作在main.django_migrations下都会有记录
python manage.py makemigrations
- #检测所有app下的models 将变更记录做成迁移文件
- 会在migrations文件夹下面生成迁移文件
python manage.py magrate
- 根据迁移文件迁移到数据库
若迁移错误可以删除刚生成的迁移文件在上一个文件上重新修改
db = User.objects.all() # 查询所有数据 对象列表
for i in db:
print(i, i.password1, i.username1)
db = User.objects.get(username=" name ", password="123") 获取一条数据 对象列表
函数部署
在app下的views.py下进行创建函数
from django.shortcuts import render, HttpResponse, redirect
from app01 import models
# Create your views here.
def login(request):
if request.method == "GET":
return render(request, 'login1.html')
else:
pwd = request.POST.get("password")
user = request.POST.get("username")
if models.User.objects.filter(password=pwd, username=user):
return redirect('/index/')
def index(request):
return render(request, 'index.html')
def face(request):
print(request.method)
print(request.POST)
return HttpResponse("success")
在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.login),
path('index/', views.index),
path('face/', views.face)
]
settings.py配置文件详解
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 项目的根目录
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '1%6tfn%enkdyd3ngmfj-uebe7a9t$70s-7syl=y-%zpqkvdwve'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# 设置为debug模式 正式上线时改为false 下面添加域名
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [ # 安装的app 注册app
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'app01', # 直接引入
'app01.apps.App01Config'
]
创建app后必须引入
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',
]
ROOT_URLCONF = 'logindome.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
# 页面文件存放的位置 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',
],
},
},
]
WSGI_APPLICATION = 'logindome.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
#数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),#数据库名,这个是文件数据库
}
}
# Password validation
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/
# 语言环境
LANGUAGE_CODE = 'en-us'
# 中文环境
# LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
# 静态文件路径 并非文件夹名 而是设置的相对路径的起始
STATIC_URL = '/static/' #静态文件的别名
# 路径拼接 相对路径
# < img src = "/static/1.jpg" > 可以获取内容
# < img src = "/static1/2.jpg" > 不可以获取内容
# < img src = "/static2/3.jpg" > 不可以获取内容
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'), # 1 最先进行索引,现在该文件夹下寻找若没有则去下一个寻找
os.path.join(BASE_DIR, 'static1'), # 2
os.path.join(BASE_DIR, 'static2') # 3
]
- 静态文件static 在根目录下创建一个static文件夹,但是不等于静态文件路径
- 创建三个static目录,可以不一样,但在调用的时候,会依次根据settings.py里面配置的顺序进行查找,
- 只有第一个可以获取图片,因为他先要得到静态文件的路径,只有’/statiic/'时setting.py里面配置好的,
# 静态文件路径 并非文件夹名 而是设置的相对路径的起始
STATIC_URL = '/static/'