目录
创建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
|