一、安装
1.1 准备虚拟环境
看过我的Flask课程的用户,应该已经知道了,如何安装虚拟环境,这里在复习一遍。

1.2 安装django
pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
上面指定了清华的源。

这里安装django的默认最新版本,也可以通过指定版本来安装。
1.3 查看安装的软件
pip list

二、创建项目
2.1 方式一:采用django命令方式
进入到要存放项目的目录,执行如下命令
django-admin startproject 项目名称
此时会创建一个以项目名称
为文件夹的项目。
2.1.1 pycharm配置虚拟环境
在电脑上,创建如下路径:

我的项目地址为D:projectpythonProjectdjangoApp
然后,用pycharm打开,并信任该目录。
打开后,开始配置解析器
打开Settings如下配置

然后找到自己安装的虚拟环境的位置

2.2 开始创建项目
打开pycharm的终端,其实也就是自己项目的终端。
也就是我的项目地址,一定要进入到虚拟环境中的(在Pycharm上打开终端是自动进入虚拟环境的)。
django-admin startproject demo1

然后生成的项目结构如下:

-
第一层demo1是项目名称
-
第二层demo1代表的是一个app应用
-
manange.py是管理程序,属于django自动生成的,不需要我们操作
2.2 方式二:采用Pycharm创建

生成的目录如下:

与命令唯一区别就是,这里可以生成一个应用模块,这里指的是student模块。
2.1.1 `manage.py`
是Django用于管理本项目的命令行工具,之后进行站点运行,数据库自动生成等都是通过本文件完成.
2.1.2 demo2下结构说明
`init.py`
告诉python该目录是一个python包
`settings.py`
Django项目的配置文件,默认状态其中定义了本项目引用的组件,项目名,数据库,静态资源等.
`urls.py`
维护项目的URL路由映射,即定义当客户端访问时由哪个模块进行响应
`wsgi.py`
全称为Python Web Server Gateway Interface,即Python服务器网关接口,是Python应用与Web服务器之间的接口,用于Django项目在服务器上的部署和上线,一般不需要修改。
`asgi.py`
定义ASGI的接口信息,和WSGI类似,在3.0以后新增ASGI,相比WSGI,ASGI实现了异步处理,用于启动异步通信服务。
2.1.3 student结构说明
migrations
数据迁移所用,与flask类似,都是操作数据库的
admin.py
注册到django的管理台上,可以在管理台上操作该模块的增删改查。
models.py
编写模型的地方。
test.py
测试文件
views.py
与url关联的视图文件
2.3 settings.py文件详解
from pathlib import Path
"""
项目根目录,base目录,是当前文件的父目录的父目录,最终就是最外层的demo2文件夹
"""
BASE_DIR = Path(__file__).resolve().parent.parent
"""
SECURITY 项目中的加解密会用到,默认即可
"""
SECRET_KEY = 'django-insecure-s4e2)xp#&)rovxjw2(%vmg+)fjj8-^$q6@d=r=2j)5(44$v8l@'
"""
是否是调试模式
True:调试模式,一般用在开发环境中
False:非调试模式,一般用于生成部署
"""
DEBUG = True
"""
可以访问该项目的IP
* 代表通配符,所有IP都可以访问
如果指定IP,只有指定IP可以访问
"""
ALLOWED_HOSTS = ['*']
"""
定义应用
一部分是django自身用到的应用
一部分就是自己定义的业务应用,例如student
"""
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 这里是student模块的配置
'student.apps.StudentConfig',
]
"""
中间件
如果是自定义中间件,就需要在这里注册
"""
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',
]
"""
根路由,这里使用的demo2文件夹下的urls作为根路由,也就是应用的入口路由
"""
ROOT_URLCONF = 'demo2.urls'
"""
模板配置信息
"""
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目录相关
"""
WSGI_APPLICATION = 'demo2.wsgi.application'
"""
配置数据库
这里使用的是嵌入式数据库sqlite;当然也可以使用mysql等其他数据库
"""
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# 密码验证,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',
},
]
"""
国际化配置,en-us是英语
zh-hans 是中文
"""
LANGUAGE_CODE = 'en-us'
"""
时区
"""
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
"""
静态文件路径 (CSS, JavaScript, Images)
"""
STATIC_URL = 'static/'
"""
默认的主键类型
"""
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
三、运行项目
2.1 命令行启动
在项目的命令行路径下,执行
python .manage.py runserver

启动后,这里会有一个提示:说需要进行迁移的,在这里可以不迁移,先看一下启动效果

2.2 命令行的其他可用命令
python .manage.py
就会给出可用的命令

后续会逐步讲解这里的用法。
四、数据迁移
迁移的概念: 就是将模型转变成SQL,在数据库中执行。
4.1 生成迁移文件
python manage.py makemigrations

4.2 执行迁移
python manage.py migrate

不需要初始化迁移文件夹,每个应用默认有迁移文件夹migrations。
4.3 查看迁移后结果
此时,会生成如下文件

打开该文件,该文件就是当前所用的数据库

打开后,会把当前模型,同步到数据库中去了。
注意:此时我们还未编写任何一个模型,这些都是django自己需要的。
五、添加应用
5.1 添加应用
python manage.py startapp 应用名称
这里创建一个应用,类似于通过Pycharm创建项目时就创建的一个应用student一样。

创建项目结构如下

这里的项目结构,与2.2中的一致哦。
5.1 在settings.py中配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 这里是student模块的配置
'student.apps.StudentConfig',
# 配置teacher模块
'teacher.apps.TeacherConfig',
]
六、视图函数入门
这里以student模块来操作。
6.1 views.py
from django.http import HttpResponse
from django.shortcuts import render
"""
视图函数,这里的参数request用于接受请求参数,但是只是参数而已
"""
def index(request):
return HttpResponse("hello world")
6.2 在demo2的urls.py中增加视图配置
关联路由与视图函数的关系
from django.contrib import admin
from django.urls import path
# 导入student应用中的视图文件中所有,用于与路由url关联
from student.views import *
urlpatterns = [
# 路由,只有当url中输入ip:端口/index/的时候,这里就会拦截到,然后转换到 index函数中去处理
path('index/', index),
path('admin/', admin.site.urls),
]
6.3 运行效果

6.4 视图函数中渲染模板
模板文件,存放在templates文件夹下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h2>这里是首页</h2>
</body>
</html>
views.py中代码
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
"""
视图函数,这里的参数request用于接受请求参数,但是只是参数而已
"""
def index(request):
# return HttpResponse("hello world")
# 渲染模板
return render(request, 'index.html')
运行效果

原文始发于微信公众号(Python之家):Django-1-入门
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198214.html