Django学习(一):创建项目与应用、配置MySQL数据库

一:django版本说明

long-term support (LTS):
某些功能版本将被指定为长期支持(LTS)版本。 这些版本将在保证的时间段(通常为三年)内得到应用安全和数据丢失修复的支持。



二:django安装

推荐django版本选择是LTS版本的1.11版本。

两种方式:

1,通过cmd命令行安装

pip install Django==1.11.13  (或 py -3 -m pip install Django==1.11.13)

2,通过pycharm下载安装

file -->  settings --> project



三:django创建新项目

1,创建新项目:
方式一:
需先把E:\python3\Scripts 先添加进系统的环境变量中(因为下面要用到的django-admin可执行文件在此目录下)
先切入到某个你要用来存放新项目的目录,然后执行django-admin startproject mysite命令

E:\python\djfile>django-admin startproject mysite

方式二:使用pycharm创建

file -->new project -->Django



2,创建一个django新项目后生成如下文件结构:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些目录和文件的用处是:

1,最外层的:file: mysite/ 根目录只是你项目的容器, Django 不关心它的名字,你可以将它重命名为任何你喜欢的名字。
2,manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。
3,里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
4,mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
5,mysite/settings.py:Django 项目的配置文件。
6,mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。

7,mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。


3,相关配置设置

#mysite/settings.py

# 静态文件目录,在HTML文件中引入外部静态文件时需以此目录名开头
STATIC_URL = '/static/'

# 下面的设置很重要,名字必须是  STATICFILES_DIRS
# 设置静态文件真正存放的目录
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,"static"), 
]

在根目录下创建static文件夹来存放静态文件,创建templates文件夹来存放HTML文件(注:每个应用的HTML文件最好放在该应用下的templates文件夹内)


四:django创建新应用

1,创建新应用

方式一:在cmd中创建新应用,需先切入到该应用要存放的目录

E:\python\djfile\mysite>python3 manage.py startapp polls

方式二:在pycharm的Terminal中创建,其实本质和方式一是一样的,只是更加方便了


项目和应用有啥区别?
应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者简单的投票程序。
项目则是一个网站使用的配置和应用的集合。
项目可以包含很多个应用。应用可以被很多个项目使用。

2,相关配置

#mysite/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',
    'testapp.apps.TestappConfig',
    # 有以下两种配置方式
    # 'sms',    
    'sms.apps.SmsConfig',  # 推荐使用这种方式配置
]
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',    # POST提交表单要在表单中使用{% csrf_token %}
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

关于html文件,可以统一放在根目录下的templates文件夹中,这样每个html文件的url配置如下:

from django.conf.urls import url
from django.contrib import admin
from testapp import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login),
    url(r'^publisher_list/',views.publisher_list),
    url(r'^add_publisher/',views.add_publisher),
]

html文件也可放在在应用下面的templates文件夹内,其url配置如下:(推荐使用这种方式)

# mysite/urls.py

from django.conf.urls import url,include
from django.contrib import admin


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^sms/', include('sms.urls')),
    url(r'^polls/', include('polls.urls')),
]

# 项目sms/urls.py

from django.conf.urls import url
from . import views

app_name = 'sms'
urlpatterns = [
    url(r'^class_list/',views.class_list),
    url(r'^add_class/', views.add_class),
]

在views.py中写业务逻辑代码:

# sms/views.py

from django.shortcuts import render, redirect
from . import models


# Create your views here.

def class_list(request):
    classes = models.Class.objects.all()
    return render(request, 'sms/class_list.html', {'class_list': classes})


五:配置MySQL数据库

步骤一:需要先创建一个数据库



步骤二:

#mysite/settings.py

# 首先需要把django 默认的数据库配置注释掉
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }
# 在下面为django项目配置MySQL数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'django_learn',  # 这里填你手动创建的数据库的名字
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'321'
    }
}
# mysite/__init__.py

import pymysql
pymysql.install_as_MySQLdb()

步骤三:

在应用下面的models.py内创建需要用到的数据模型:

from django.db import models


# Create your models here.

class Publisher(models.Model):
    id = models.AutoField(primary_key=True)  # 这行代码可以省略
    name = models.CharField(max_length=32)

    def __str__(self):
        return self.name


class Book(models.Model):
    name = models.CharField(max_length=32)
    publisher = models.ForeignKey(Publisher)

    def __str__(self):
        return self.name

步骤四:

连接数据库:



步骤五:

执行以下两条命令:



通过运行 makemigrations 命令,Django 会检测你对模型文件的修改(在这种情况下,你已经取得了新的),并且把修改的部分储存为一次 迁移。

迁移是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式;它们其实也只是一些你磁盘上的文件。如果你想的话,你可以阅读一下你模型的迁移数据,它被储存在 polls/migrations/0001_initial.py 里

Django 的迁移代码是由你的模型文件自动生成的,它本质上只是个历史记录,Django 可以用它来进行数据库的滚动更新,通过这种方式使其能够和当前的模型匹配

python manage.py migrate 
这个 migrate 命令检查 INSTALLED_APPS 设置,为其中的每个应用创建需要的数据表,至于具体会创建什么,这取决于你的 mysite/settings.py 设置文件和每个应用的数据库迁移文件
Django 有一个自动执行数据库迁移并同步管理你的数据库结构的命令 - 这个命令是 migrate

这个 migrate 命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上。

改变模型需要这三步:
①编辑 models.py 文件,改变模型。
②运行 python manage.py makemigrations 为模型的改变生成迁移文件。
③运行 python manage.py migrate 来应用数据库迁移。


步骤六:

在pycharm提供的图形化界面进行表内数据的增删查改






猜你喜欢

转载自blog.csdn.net/hua1011161696/article/details/80656923
今日推荐