Django基础知识

目录

创建django项目

manage.py的使用


创建django项目

使用django创建wed项目

切换到要创建django项目的文件夹,打开命令行执行如下命令

#django-admin startproject 项目名称
#这里创建mysite项目
django-admin startproject mysite

这时在这个文件夹下就有一个mysite文件夹

mysite文件夹下面有一个manage.py 和 mysite文件夹

manage.py 是执行django命令要用到的文件

mysite的目录下有如下文件

asgi.py
__init__.py
__pycache__.py
settings.py       #django项目的配置文件
urls.py           #url的配置文件
wsgi.py           #连接apache或 ngix 所用到的配置文件

这里我们现在重点关注settings.py 和 urls.py

settings.py的设置如下

"""
Django settings for mysite project.

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

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

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


from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.

#BASE_DIR 存放项目的根目录
BASE_DIR = Path(__file__).resolve().parent.parent


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

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-$_k=33o#0ozs+69_ml^o6x*p0yhjrucyn40&4)4v4vj_5457lq'

# SECURITY WARNING: don't run with debug turned on in production!

#这是django的 debug即调式 当发布网站时将及改为False
DEBUG = True


#允许那些ip访问   *表示所有ip都可以访问
#ALLOWED_HOSTS = ['127.0.0.1']  #只允许127.0.0.1的ip访问
ALLOWED_HOSTS = ["*"]



# Application definition

#这里是app的设置     当创建app时要将app添加到INSTALLED_APPA里面
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #将添加article
    'article',
]


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 = 'mysite.urls'

#模板设置
#----------------------------------------------------------------------
#模板文件的设置  默认情况下每一个app文件夹下都没有模板文件这时候可以在app下创建templates文件夹
#在及下面创建html模板文件

TEMPLATES = [
    {
         #BACKEND 定义模板引擎 用于识别模板里面的变量和指令
        'BACKEND': 'django.template.backends.django.DjangoTemplates', 
 
         #DIRS 模板所在的路径
         #join表示将前一个参数和后一个参数拼接
         #路径写成os.path.join(BASE_DIR,'')
        'DIRS': [],
         #如在项目根目录下创建一个templates
         #DIRS:[os.path.join(BASE_DRI,'templates'),] #Django就可以扫描到templates文件


         #APP_DIRS 是否在app里面查找模板文件
        '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 = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases


#数据库的相关设置
#----------------------------------------------------------------------------
#django提供四种数据库引擎
#django.db.backends.sqlite3
#django.db.backends.mysql
#django.db.backends.oracle
#django.db.backends.postgresql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
#
#mysql数据库的设置
#设置之前先安装 pymysql 或 mysqlclient
#
#DATABAES={
#     'default':{
#          #ENGINE表示使用哪个数据库引擎
#         'ENGINE':'django.db.backends.mysql',
#           
#          #NAME表示生成的数据库文件名
#         'NAME':'django.db',

#          #表示mysql的用户名
#         'USER':'root'

#         #表示mysql的密码
#         'PASSWORD':'123'

#         #mysql连接本地连接
#         'HOST':'127.0.0.1'

#          #mysql的端口
#          'PORT':'3306'
        
#
                #}

#}
#使用pymysql库时
#要在项目__init__.py 加入如下代码:
#import pymysql
#pymysql.install.MYSQLdb()

# Password validation
# https://docs.djangoproject.com/en/3.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/3.2/topics/i18n/

#设置管理页面的文件显示方式
LANGUAGE_CODE = 'en-us'
#LANGAGE_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.2/howto/static-files/


#资源静态文件的设置
#--------------------------------------------------------------------
资源路由(在访问静态资源的路由设置)
#静态资源的默认配置 默认只能识别项目app下的static文件夹里静态的文件,不能识别app之外的static文件夹,static不能改成其他名称否则django不能识别
STATIC_URL = '/static/'

#资源集合staticfiles_dirs
#可以在django的根目录下创建static的文件夹将静态文件放到其中

#STATICFILES_DIRS =[
#设置根目录下的静态资源(在django 根目录下创建static文件夹)
# os.path.join(BASE_DIR,'static'),
#设置app下的静态资源,(先在创建index app 在app下创建Mydjango存放静态资源文件夹)
# os.path.join(BASE_DIR,'index/Mydjango')
#  ]
#当网址访问 127.0.0.1/static/静态文件就可以访问到

#资源部署
#在服务上部署项目,服务器与项目之间的映射关系,STATIC_ROOT 主要收集整个项目的静态文件的一个文件夹,
#然后该文件夹与服务器之间构建映射关系 DEBUG=Ture 不起作用
#STATIC_ROOT = os.path.join(BASE_DIR,'AllStatic')

#媒体资源设置
#------------------------------------------------------------------------
#如用户的头像,歌曲文件需要媒体文件来存储
#在根目录下创建一个media文件
#媒体路由设置
#MEDIA_URL = '/media/'
#媒体文件的路径BASE_DIR表示根目录,media表示文件
#MEDIA_ROOT = os.path.join(BASE_DIR,'media')


# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

urls.py文件设置

"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path,re_path,include
#from article.views import article_detail,article_list


#url的设置
#---------------------------------------------------------------
urlpatterns = [
    
    #admin是django为提供的管理员界
    #要访问管理员界面要创建管理员(在创建管理员之前先将django数据迁移到数据库面)
    #python3 manage.py makemigrations (将django的数据模型创建成sql语句的py文件)
    #python3 manage.py makemigrate   (将数据同步到服务器)
    #python3 manage.py createsuperuser  (创建管理员,这是有提示要设置管理员的用户名 、邮箱、密码)
    #管理员的页面 127.0.0.1/admin/
    path('admin/', admin.site.urls),
   
   
    #--------------------------------------
    #path('index',views.index)
    #index 表示当浏览器输入127.0.0.1/index/   就调用views.py文件下的index函数,
    #可以在项目文件下创建一个views.py文件 然后定义index函数,在将导入到urls.py中
    #或创建一个app,在app下有views.py文件,可在其下定义index,在导入到urls.py中

    #路由变量
       #字符类型 匹配任何非空字符串,但不含斜杠
       #整数 匹配0和正整数
       #slug 可理解为注释、后缀或附属 如网页的标题是13岁的孩子 其路由地址可为 13-sui-de-hai-zi 
       #uuid 匹配一个uuid格式的对象  必使用须使用“-”且所有字母小写 如075194d3-417e-a8a8-6c931e272f00
       
     #变量的写法
         #<year> 字符串变量 year便来明 等同 <str:year>
         #<int:month> 整形变量  month是变量名
         #<slug:bay>  slug变量 
      #使用
      #  path('article/<int:article_id>',views.index,name='article_detail')
      #  name表示别名
      #  article_id变量 ,可以作为index函数的形参
     #----------------------------------------
     # 路由的另一种使用方法 有时后有多歌app这时后地址很多,只有一个urls设置不方便
     #我们可以在app下面创建一个urls.py文件 
     #保存储
     #在将path('article/<int:article_id>',views.index,name='article_detail')改为
     #path('article/',include("artcle.urls"))
     #include()表示到artcle  app 下找urls文件 将article/和app下的<int:article_id> 组合
     #成article/<int:article_id>

#app下的urls.py
#--------------------------------------------------------------------------------
#app下的urls.py 的内容如下
from django.urls import path
from . import views
          urlpatterns=[
                path("<int:article_id>",views.index,name='article_detail')

                
               
          ]
#------------------------------------------------------------------------------


              


              ]

manage.py的使用

#运行django服务
#python3 manage.py  runserver ip地址:端口
#如
python3 manage.py runserver 127.0.0.1:80

#创建django app
#python3 manage.py startapp app名称
#如
python3 manage.py startapp article

#使用模型创建数据库表
python3 manage.py makemigrations

#将创建的表同步的数据库
python3 manage.py migrate

#创建管理员
python3 manage.py createsuperuser
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_53558470

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值