Django项目的基本配置

创建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/'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值