您的当前位置:首页正文

Django使用步骤

来源:华拓网

一、准备阶段

  1. 查看版本
    python -m django --version
  2. 创建项目
    django-admin startproject mysite
    以上步骤在Pychram中均可省略
  3. 简单测试
    python manage.py runserver
    这里可以更改自己想要的ip及端口
    如:
    python manage.py runserver 8080
  4. 创建app
    python manage.py startapp polls
  5. 在settings中加入此app
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MMS',    # 后面加入的
]
  1. 在新建的app中编写第一个用于测试的views
from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")
  1. 在主目录的urls.py下添加我们的views的url
from django.contrib import admin
from django.urls import path
from MMS import views as MMS_views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',MMS_views.index),  # news
]

二、开始加入真正的功能

  1. 在settings中更换mysql的信息
'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'csvt',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
  1. 添加驱动
    django 连接mysql默认驱动是MySQLdb,MySQLdb没有支持python3的版本,解决办法如下:
  • 使用pymysql替换MySQLdb
    在django 项目配置文件同目录下的 --init__.py文件中加入以下代码:
import pymysql
pymysql.install_as_MySQLdb()
  • 使用mysqlclient代替MySQLdb
    pip install mysqlclient
  1. 默认开启的某些应用需要至少一个数据表,所以,在使用他们之前需要在数据库中创建一些表。请执行以下命令:
    python manage.py migrate
  2. 创建数据库
    在app的modles.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)
  1. 现在你的 Django 项目会包含 polls 应用。接着运行下面的命令:
    python manage.py makemigrations polls
  1. 现在,再次运行 命令,在数据库里创建新定义的模型的数据表:
    python3 manage.py migrate

以上3、4、5、6合起来如下:

# 初始化 
python manage.py migrate
# 在modles中创建新的表
# 执行一下步骤
python manage.py makemigrations polls
# 将表加入如数据
python manage.py migrate
  1. 还要学习一下python方便的API
    现在让我们进入交互式 Python 命令行,尝试一下 Django 为你创建的各种 API。通过以下命令打开 Python 命令行:
    python manage.py shell

我们使用这个命令而不是简单的使用 "Python" 是因为 manage.py 会设置 DJANGO_SETTINGS_MODULE 环境变量,这个变量会让 Django 根据 mysite/settings.py 文件来设置 Python 包的导入路径。

from polls.models import Choice, Question  
# Import the model classes we just wrote.

# No questions are in the system yet.
>>> Question.objects.all()
<QuerySet []>

>>> from django.utils import timezone
# 为表添加元素
>>> q = Question(question_text="What's new?", pub_date=timezone.now())
# 保存
>>> q.save()
# Now it has an ID.
>>> q.id
1
# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)
# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()

# objects.all() displays all the questions in the database.
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>

polls/models.py

class Question(models.Model):
    # ...
    def __str__(self):
        return self.question_text

class Choice(models.Model):
    # ...
    def __str__(self):
        return self.choice_text
from django.db import models
from django.utils import timezone

class Question(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

三、外键与主键