安装虚拟环境
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解释器
3.运行项目
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
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)
重启服务