Django框架(二)--使用PyCharm打开启动,简单编写,正则表达式,路由匹配

一、pycharm 打开项目

1.打开工程

在这里插入图片描述

2.配置环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.即可启动服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、工程目录

在这里插入图片描述

demo 项目主目录
	__init__.py  项目主目录的初始化文件
	settings.py  项目的配置文件
	urls.py  路由文件
	wsgi.py  项目的部署文件
db.sqlite3  数据库文件
manage.py   项目的管理文件,负责在开发模式下项目的控制,项目启动,数据库的同步

三、配置文件的介绍

"""
Django settings for demo project.

Generated by 'django-admin startproject' using Django 2.2.1.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""

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__)))
# print(BASE_DIR)


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
# 密钥
SECRET_KEY = 'x#ut-mtp6s=3qa)g$v2id(p8#fr!&z^tslwa&7b$ien0dy7fs('

# SECURITY WARNING: don't run with debug turned on in production!
# debug 模式  True 开启debug模式
DEBUG = True

#  python manage.py runserver 0.0.0.0:8000
ALLOWED_HOSTS = []


# Application definition

# 注册应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
# 中间件   中间人
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 = 'demo.urls'

# 模版设置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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 = 'demo.wsgi.application'


# Database
# https://docs.djangoproject.com/en/2.2/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/2.2/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/2.2/topics/i18n/

# 语言
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# 时区
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/

# 静态文件的配置
STATIC_URL = '/static/'

四、编写简单页面

hello world

1.配置路由文件

路由:分配任务,将指定的请求,分配到指定的函数处理。

path(“路径”,处理的函数)
在这里插入图片描述

2.在demo文件中新建一个views.py文件

在这里插入图片描述

3.编写views.py文件

视图
在这里插入图片描述
空路径访问时会出现以下页面是因为,添加了新的路由,并且settings.py配置文件中设置了DEBUG=True。如果将它改为DUBUG=False,Django将会显示标准的404页面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排错

在这里插入图片描述

五、设计模式

Django是一个MVT模式,同时遵循MVC模式。
在这里插入图片描述

  • M:model,提供数据的支持,封装了数据库的访问,负责对数据库的增删改查。
  • C: controller,控制器,用于接受请求,处理业务逻辑,与model和view进行交互,返回结果。
  • V:view,用与封装结果,生成页面和html内容。
    在这里插入图片描述
  • M:model,提供数据的支持,封装了数据库的访问,负责对数据库的增删改查。
  • V:view,与MVC中C相似,接受请求,处理请求,返回响应。
  • T:和MVC中的V相似,负责封装结果,提供html页面支持。

六、正则表达式

'''
正则表达式:是一种字符串的处理方式,用于字符串的匹配
字符串的匹配有两种:
    内容匹配:python re
        通过描述要匹配的内容和数量来实现匹配
    结构匹配:xpath
        通过描述要匹配的内容在整体中的结构来实现匹配
'''
import re
string='hello \n \t world 12h33 _ _'
# 格式:res=re.findall('正则表达式',字符串)

'''
类型匹配
'''
# . 除\n之外的所有内容
# res = re.findall('.',string)
# print(res)
# \d 匹配数字
# res = re.findall('\d\d\d',string)
# print(res)
# \D 非数字
# res = re.findall('\D',string)
# print(res)
# \w 匹配数字字母_
# res = re.findall('\w',string)
# print(res)
# \W 除数字字母_
# res = re.findall('\W',string)
# print(res)
# [] 返回括号中的任意一个字符
# res = re.findall('[a-zA-Z0-9]',string)
# print(res)
# 取反
# res = re.findall('[^a-zA-Z0-9]',string)
# print(res)
# | 匹配任意一边的字符
# res = re.findall('[hello|world]',string)
# print(res)
# () 组匹配
# 匹配两个数字
# res = re.findall('\d\d',string)
# print(res)    # ['12', '34']
# 匹配一个后面有数字的数字(分组后面的是条件)
# res = re.findall('(\d)\d',string)
# print(res)    # ['1', '3']

# res = re.findall('(\d)',string)
# print(res)
# 给分组写一个祖名id,实际内容完全相同
# res = re.findall('(?P<id>\d)',string)
# print(res)
# (?P=id)是对前面组名id匹配结果的引用
# res = re.findall('(?P<id>\d)(?P=id)',string)
# print(res)

'''
原样匹配
'''
# res = re.findall('l',string)
# print(res)

'''
长度匹配
'''
# * 匹配0个或多个数字,贪婪
# res = re.findall('\d*',string)
# print(res)
# + 匹配1个或多个数字,贪婪
# res = re.findall('\d+',string)
# print(res)
# {} 匹配指定次数
# res = re.findall('\d{2}',string)
# print(res)
# res = re.findall('\d{0,2}',string)
# print(res)
# ? 匹配0个或1个,禁止贪婪
# res = re.findall('\d?',string)
# print(res)

'''
特殊匹配
'''
# ^ 匹配开头
res = re.findall('^\w',string)
print(res)
# $ 匹配结尾
res = re.findall('\w$',string)
print(res)

七、路由的匹配规则

从上到下

Django 在1.8版本之前,默认使用正则表达式进行匹配。

使用正则表达式进行匹配时

  1. 导包 re_path

在这里插入图片描述
3. 使用正则分组进行组匹配

  1. ()
  2. 使用()组匹配写路由的时候,相当于给视图进行传参

路由
在这里插入图片描述
视图
在这里插入图片描述
使用组匹配,可以通过起组名,避免参数位置不对是出现的问题
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值