中国全球门户网站,wordpress标签页模板,微慕wordpress插件,网站制度建设模板文章目录 一、安装1.创建虚拟环境#xff08;virtualenv和virtualenvwrapper#xff09;2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板… 文章目录 一、安装1.创建虚拟环境virtualenv和virtualenvwrapper2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板 Django官网https://docs.djangoproject.com/en/4.2/
文档推荐看英文看不懂就换中文吧 Django是一个开放源代码的Web应用框架由Python写成。采用了MTV的框架模式即模型M视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
2020年Django 3.0发布。
2022年Django 4.0发布。Django 4.0 将支持 Python 3.8、3.9与3.10
2023年Django 4.2LTS发布长期支持版本会维护3年在企业中我们建议使用LTS版本
Django每2年会推出全新的大版本。 LTS是长期支持版本的意思。
一、安装
1.创建虚拟环境virtualenv和virtualenvwrapper
创建虚拟环境
# 先打开cmd
# 安装virtualenv (windows操作系统)
pip install virtualenv virtualenvwrapper-win
# Linux
pip install virtualenv virtualenvwrapper# workon 查看虚拟环境
workon# mkvirtualenv 创建新的虚拟环境
mkvirtualenv env# rmvirtualenv 删除虚拟环境
# rmvirtualenv env# 进入虚拟环境
workon env我们来装我们自己的jango
# 创建虚拟环境
mkvirtualenv envdjango4# 进入虚拟环境
workon envdjango42. 安装django
建议使用镜像安装命令后面最好加一个4.2的版本可以是4.2.1 也可以是4.2用的是国内镜像douban也可以用其他镜像这样速度会快一些
pip install django4.2 -i https://pypi.douban.com/simple4.2是LTS长期支持版本推荐使用如果不写则会安装最新版本。
测试django是否安装成功
pip show djangopip freeze 会输出所有在本地已安装的包但不包括 pip、wheel、setuptools 等自带包若需要输出内容与 pip list 一致需使用 pip freeze -all。 pip list 查看所有的包 二、改解释器 点击添加本地解释器 选择C:\Users\用户名\Envs\虚拟环境\Scripts\python.exe点击OK 点击OK等待下面的进度条走完等他加载完
三、创建一个Django项目
方式一: 进入到指定要存放项目的目录执行 django-admin startproject MyFirstDjango 来创一个名字为 MyFirstDjango 的工程 创建项目后默认的目录结构 方式二: 使用Pycharm专业版创建Django项目
File new Project C:\Users\用户名\Envs\虚拟环境\Scripts\python.exe 点击OK 创建项目后目录结构会比第一种方式多一些文件夹 四、项目目录
jango项目下面会有一个一样名字的文件夹还有一些文件这些东西名字不要去改它。
manage.py · manage是管理的意思manage.py是用于启动项目或者执行一些命令的文件。· 是Django用于管理本项目的命令行工具之后进行站点运行数据库自动生成等都是通过本文件完成。MyDjangoPro2/__init__.py· 告诉python该目录是一个python包方便我们用Python管理暂无内容后期一些工具的初始化可能会用到MyDjangoPro2/settings.py· Django项目的配置文件默认状态其中定义了本项目引用的组件项目名数据库静态资源等MyDjangoPro2/urls.py· 维护项目的URL路由映射即定义当客户端访问时由哪个模块进行响应。MyDjangoPro2/wsgi.py· 全称为Python Web Server Gateway Interface即Python服务器网关接口是Python应用与Web服务器之间的接口用于Django项目在服务器上的部署和上线一般不需要修改。MyDjangoPro2/asgi.py· 定义ASGI的接口信息和WSGI类似在3.0以后新增ASGI相比WSGIASGI实现了异步处理用于启动异步通信服务比如实现在线聊天等异步通信功能类似Tornado异步框架。它是用于存储asgi设定的文件如果使用ASGI部署django会用到一般情况下不需要更改。templates 模板目录user 就是刚刚设置的应用名称· migrations 迁移文件夹以后迁移文件都会放在这里面· admin.py 后台管理系统如果要配置后台管理系统就需要用到它· apps.py 就是当前应用的配置里面也没写什么name user就是告诉你应用名称是什么· models.py 模型存放模型的地方· tests.py 单元测试如果要写单元测试用例的话可以在这写 · views.py 视图写视图函数都在这里项目同名文件夹/settings.py Django settings for MyDjangoPro2 project.Generated by django-admin startproject using Django 4.2.这里是他的文档
For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.2/ref/settings/
from pathlib import Path BASE_DIR 项目根目录Path(__file__) 当前这个文件的绝对路径.parent.parent 父目录的父目录Path(__file__).resolve().parent.parent得到的就是项目的路径以后我们去找项目目录下的文件或文件夹就用 BASE_DIR / 子路径# Build paths inside the project like this: BASE_DIR / subdir.
BASE_DIR Path(__file__).resolve().parent.parent# 快速开始的文档
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/# SECRET_KEY 项目唯一的密钥,这个是方便它在内部加密、解密处理的时候 用到。
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY django-insecure-5ot-%22ub-!mi#-*hth-acdvo^)n1q*kbslrsbv2e1pqg# SECURITY WARNING: dont run with debug turned on in production!
# 是否使用调试模式,
# True:表示调试模式自动重启改了代码不用我们手动重启了一般用于开发过程;
# False: 表示非调试模式,一般用于上线部署
DEBUG True# 被允许的域名或IP
# 写法:
# *:表示通配符,匹配所有IP,也就是所有的IP都能访问我 ALLOWED_HOSTS [*] 表示可以被其他任何电脑来访问我(局域网)
# 上线后可以指定某个IP指定其他哪些服务器来访问我如果所有电脑都能访问就是*
## ALLOWED_HOSTS []
ALLOWED_HOSTS [*]# Application definition
# 定义应用
INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,user.apps.UserConfig, # 这里也可以直接写上 user,# 我们自己写的应用一定要在这里定义一下如果不写后面有一些功能会受到限制# 定义自己的应用# user,
]# 中间件
MIDDLEWARE [django.middleware.security.SecurityMiddleware,django.contrib.sessions.middleware.SessionMiddleware,django.middleware.common.CommonMiddleware,django.middleware.csrf.CsrfViewMiddleware, # 安全处理的防止csrf攻击django.contrib.auth.middleware.AuthenticationMiddleware,django.contrib.messages.middleware.MessageMiddleware,django.middleware.clickjacking.XFrameOptionsMiddleware,
]# 根路由
ROOT_URLCONF MyDjangoPro2.urls # 就是: 项目根目录\MyDjangoPro2\urls.py# 模板
TEMPLATES [# 可以配置多个模板一般配置一个模板就可以了{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [BASE_DIR / templates], # 指定模板文件夹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的目录: 根目录\MyDjangoPro2\wsgi.py
WSGI_APPLICATION MyDjangoPro2.wsgi.application# Database 数据库
# https://docs.djangoproject.com/en/4.2/ref/settings/#databasesDATABASES {default: { # 默认情况用到的是sqlite3数据库,经常用在手机端,或者一些小型数据库里面,因为他是单线程的ENGINE: django.db.backends.sqlite3,NAME: BASE_DIR / db.sqlite3, # 这里路径会放在根目录下面,如果没有,运行之后就有了}# 注意:我们这里要用的话,只能用关系型数据库。如果用mysql要注意,它还要指定域名,IP、端口、用户名密码
}# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
# 密码验证的东西这些都是Django内部的东西
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/4.2/topics/i18n/
# 主要是地区、语言的配置
LANGUAGE_CODE en-us # 语言,默认英语en-us, 中文zh-hans。它主要是后台管理系统会变中文TIME_ZONE UTC # 时区USE_I18N TrueUSE_TZ True# Static files (CSS, JavaScript, Images) 静态文件主要是为html服务的
# https://docs.djangoproject.com/en/4.2/howto/static-files/STATIC_URL static/# Default primary key field type 默认主键字段的类型
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD django.db.models.BigAutoField五、测试服务器启动
python manage.py runserver [ ip:port ]
如果只是改端口可以不用写IPpython manage.py runserver 8001
注意IP不能随便改要么 127.0.0.1 要么就写成 0.0.0.0 表示可以让局域网其他电脑来访问我python manage.py runserver 0.0.0.0:8000
可以直接进行服务运行 默认执行起来的端口是8000也可以自己指定ip和端口:
1. 监听机器所有可用 ip (电脑可能有多个内网ip或多个外网ip):python manage.py runserver 0.0.0.0:8000
2.同时在settings.py中将ALLOWED_HOSTS[*] (让所有的电脑都能访问)
3.在其他局域网电脑上可以通过在浏览器输入 Django项目所在电脑的 IP:8000 来访问注意You have 18 unapplied migration(s) 意思是你有18个没有被应用的迁移文件。这个迁移文件每次创建新项目都会有这个提示因为它创建项目的同时在它内部有代码它内部默认给了你18个迁移文件它已经生成了迁移文件了但这个迁移文件并没有同步到迁移文件里面去。这行信息你可以管也可以不管因为我们现在还没有写自己的模型如果你要用它内部的这些迁移文件那么就要去做迁移。 如果你要退出按 CtrlC 如果用python manage.py runserver 0.0.0.0:8000启动浏览器输入http://0.0.0.0:8000/ 是访问不了的用http://127.0.0.1:8000/ 或 http://localhost:8000/ 或者 http://自己的ip地址:8000/ 可以访问。 cmd ipconfig 查看自己ip 六、数据迁移
迁移的概念: 就是将模型映射到数据库的过程 生成迁移文件: python manage.py makemigrations 执行迁移: python manage.py migrate 不需要初始化迁移文件夹每个应用默认有迁移文件夹migrations db.sqlite3 迁移文件生成的表格直接打开是打不开的我们直接使用PyCharm 数据库的可视化吧 db.sqlite3 是不需要创建数据库名字的直接就是表tables下这些是jango自带的一些数据库表 七、创建应用
如果项目当中功能很多模块很多我们可能需要再创建多个App。
python manage.py startapp App创建名称为App的应用
我们创建新的App在settings.py默认情况下是没有注册定义的使用应用前需要将应用配置到项目中在settings.py中将应用加入到 INSTALLED_APPS选项中后面就能使用这个App了。
应用目录介绍:
__init__.py:其中暂无内容使得app成为一个包
admin.py:管理站点模型的声明文件默认为空
apps.py:应用信息定义文件在其中生成了AppConfig该类用于定义应用名等数据
models.py:添加模型层数据类文件
views.py:定义URL相应函数视图函数
migrations包:自动生成生成迁移文件的
tests.py:测试代码文件八、基本视图
1. 返回响应 response
我们打开 user\views.py
from django.shortcuts import renderfrom django.http import HttpResponse# 视图函数Views
def index(request):# pass# 返回响应 responsereturn HttpResponse(hello Django!!!)路由在MyDjangoPro2\urls.py 里写
from django.contrib import admin
from django.urls import pathfrom user.views import *urlpatterns [path(admin/, admin.site.urls),# 路由urlpath(index/, index)
]python manage.py runserver 启动之后浏览器输入 http://127.0.0.1:8000/index/ 2. 渲染模板
在视图模板里面除了返回 HttpResponse(‘hello Django!!!’) 这样的内容以外还可以以渲染模板的方式。
在user应用中新建一个文件夹templates注意单词不要写错了。在里面我们新建一个html叫 index.html index.html 代码
!DOCTYPE html
html langen
headmeta charsetUTF-8titleIndex页面/title
/head
bodyh1Index页/h1hrh3Hello Django/h3
/body
/htmluser\views.py
from django.shortcuts import renderfrom django.http import HttpResponse# 视图函数Views
def index(request):# pass# 返回响应 response# return HttpResponse(hello Django!!!)# 渲染模板render,渲染htmlreturn render(request, index.html)http://127.0.0.1:8000/index/