安装Django
(1)安装命令
pip install django
(2)安装完成后生成的命令工具文件
D:/python39/Scripts/django-admin.exe
(3)安装完成后悔在lib目录中安装django依赖库
D:\python39\Lib\site-packages\django
创建项目
命令行创建项目
(1)打开终端,也可以在pycharm中打开terminal窗口,然后进入到存放项目的目录,如:
$ pwd
/g/src/blog_redrose2100/projects
(2)执行命令创建项目
django-admin startproject 项目名称
如:
$ ls
$ django-admin startproject Proj_0122
$ dir
Proj_0122
$ cd Proj_0122/
$ dir
Proj_0122 manage.py
使用Pycharm创建django项目
依次点击【File】-【New Project】-【Django】,然后选择存放位置,比如 G:\src\blog_redrose2100\projects\Proj_0112,然后设置Python解释器,然后点击【Create】即可
注意,标准的情况下是使用命令行创建项目,使用Pycharm会默认的创建templates文件夹,这里可以先把templates文件夹删除,此外,setting.py配置文件中会增加类似如下的一行,这里也可以先删除
'DIRS': [os.path.join(BASE_DIR, 'templates')]
在后续使用的过程中,推荐使用命令行创建项目
项目目录结构
Proj_0112
|----manage.py # 项目的管理,启动项目、创建app,数据管理等,不要动
|----Proj_0112
|----__init__.py
|----setting.py # 项目的配置文件,经常操作的文件
|----urls.py # url和函数对应关系,经常操作的文件
|----asgi.py # 接收网络请求,不要动
|----wsgi.py # 接收网络请求,不要动
创建app
使用如下命令创建app
python manage.py startapp app名称
如:
python manage.py startapp app01
App目录结构
Proj_0112
|----manage.py # 项目的管理,启动项目、创建app,数据管理等,不要动
|----Proj_0112
|----__init__.py
|----setting.py # 项目的配置文件,经常操作的文件
|----urls.py # url和函数对应关系,经常操作的文件
|----asgi.py # 接收网络请求,不要动
|----wsgi.py # 接收网络请求,不要动
|----app01
|----__init__.py
|----admin.py # admin后台管理
|----apps.py # app启动类,不要动
|----migrations
|----__init__.py
|----models.py # 模型,即ORM模型
|----tests.py # 单元测试
|----views.py # 视图函数,即接口函数
快速上手
确保创建的app已注册
(1)首先找到apps.py文件,这里即 Proj_0112/app01/apps.py,比如这里内容如下:
from django.apps import AppConfig
class App01Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app01'
(2)然后在项目Proj_0112/Proj_0112/setting.py中注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"app01.apps.App01Config", # 增加此行
]
编写url和视图函数的对应关系
(1)编写项目目录下url.py文件,即Proj_0112/Proj_0112/urls.py
from django.contrib import admin
from django.urls import path
from app01 import views # 增加此行,从app01中导入views视图模块
urlpatterns = [
# path('admin/', admin.site.urls), # 注释掉默认的路由
path('index/', views.index), # 增加此行,即当访问 xxx.com/index 时,就会调用app01/views.py文件中的index函数
]
(2)到app01目录中views中定义视图函数index,即在 Proj_0112/app01/views.py文件
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def index(request): # 定义index函数,默认传入request参数
return HttpResponse("欢迎访问Proj_0112") # 返回 欢迎访问Proj_0112 的内容
启动项目
(1)通过命令行启动
python manage.py runserver
若出现类似如下错误,说明默认的8080端口已经被占用
python manage.py startapp app01
G:\src\blog_redrose2100\projects\Proj_0112>dir
驱动器 G 中的卷是 projects
卷的序列号是 04DA-D5EC
G:\src\blog_redrose2100\projects\Proj_0112 的目录
2022/01/12 21:12 <DIR> .
2022/01/12 21:12 <DIR> ..
2022/01/12 21:13 <DIR> .idea
2022/01/12 21:29 <DIR> app01
2022/01/12 21:00 687 manage.py
2022/01/12 21:25 <DIR> Proj_0112
1 个文件 687 字节
5 个目录 211,081,891,840 可用字节
G:\src\blog_redrose2100\projects\Proj_0112>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 12, 2022 - 21:32:43
Django version 4.0.1, using settings 'Proj_0112.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
可以继续使用如下命令指定ip和端口,正常情况下,此时就会OK了
python manage.py runserver 0.0.0.0:8181
此时在浏览器打开 http://127.0.0.1:8181/index/,正常情况下就可以看到页面上有“欢迎访问Proj_0112”字样了