Django环境搭建


目录:

安装虚拟环境

pip install pipenv 

mkdir Django
cd Django

# 创建一个包含Django的Python虚拟环境
pipenv install django

# 在项目目录中进入虚拟环境
pipenv  shell 

# 在虚拟环境中安装MySQLClient用于和MySQL数据进行通信
pipenv install mysqlclient

使用django-admin命令创建项目

# 进入虚拟环境
pipenv shell 
# 创建项目
django-admin   startproject   hello
# 进入项目
cd hello
# 启动项目
python  manage.py runserver  0.0.0.0:8000

使用PyCharm开发项目

1.使用PyCharm打开项目目录

2.配置当前项目的Python解释器

image-20220118160830869

image-20220118160939691

3.运行项目

image-20220118161057925

4.创建超级管理员

# 进入Django目录
cd Django

# 启动虚拟环境
pipenv shell 
# 进入项目目录
cd hello
# 生成模型文件
python  manage.py makemigrations
# 进行数据迁移,将模型中的数据迁移到数据库
python  manage.py migrate
# 创建超级管理员
python manage.py  createsuperuser
Username (leave blank to use 'zj'): 输入您的用户名
Email address:邮箱(可以跳过)
Password:密码
Password (again):再次输入密码
Superuser created successfully.
# 启动项目
python manage.py runserver 
# 打开浏览器 127.0.0.1:8000/admin

image-20220118163535702

image-20220118163749332

5.创建Django投票应用

python manage.py startapp polls
# 在settings.py中设置应用
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
# polls/models.py 中创建数据模型类
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
# 创建数据模型迁移脚本
python manage.py makemigrations polls

# 显示迁移脚本转换的SQL语句(了解)
python manage.py sqlmigrate polls 0001

BEGIN;
--
-- Create model Question
--
CREATE TABLE "polls_question" (
        "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
        "question_text" varchar(200) NOT NULL, 
        "pub_date" datetime NOT NULL
);
--
-- Create model Choice
--
CREATE TABLE "polls_choice" (
        "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
        "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL,  
        "question_id" bigint NOT NULL REFERENCES "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED);

CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");

# 执行迁移
python manage.py migrate polls 
# 创建Admin设置 
# polls/admin.py
from django.contrib import admin

from .models import Question, Choice

admin.site.register(Question)
admin.site.register(Choice)

重启服务

image-20220118173312025