[原创: 云服务器实战系列7] django初体验

上一篇[原创: 云服务器实战系列6] Python3 + Django + uwsgi + nginx + Mysql部署环境搭建&django应用初始化python

如下全部操做, 都是在Window主机上. 当前使用的是window7 64位系统mysql

django项目建立

安装virtualenv

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ pip install virtualenv --user
复制代码

在bt_django(clone至本地的仓库)中建立独立的Python环境, 并命名为: venv

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ virtualenv --no-site-packages venv
复制代码

进入至venv虚拟Python环境

当前使用的是git bashnginx

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ source venv/Scripts/activate
复制代码

在cmd命令行的话, 可用:git

> venv/Scripts/activate.bat
复制代码

安装依赖

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ pip install django djangorestframework mysqlclient
复制代码

建立django工程mySite

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ django-admin startproject mySite
复制代码

settings.py

由于使用的是mysql数据库, 须要修改默认数据库相关的配置以下:sql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   # 数据库类型
        'NAME': 'test',                         # 项目数据库名称
        'HOST': '120.1.1.1',                    # 数据库地址
        'PORT': '3306',                         # 端口号
        'USER': 'test',                         # 数据库用户名
        'PASSWORD': 'test',                     # 数据库密码
    }
}
复制代码

若数据库没有建立db库和用于测试账户, 可按以下步骤操做:数据库

添加DB

mysql> CREATE DATABASE IF NOT EXISTS dbName DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
复制代码

添加用户并受权可访问dbName库的全部表

mysql> grant all privileges on dbName.* to test@'%' identified by 'test';
Query OK, 0 rows affected
mysql> flush privileges;
Query OK, 0 rows affected

mysql> 
复制代码

至此, django项目已完成初始化和相关配置, 能够在本地试运行了.django

运行本地django项目

进入到虚拟的python环境

(venv)James@James-PC MINGW64 /d/Projects/bt_django (master)$ source venv/Scripts/activate
复制代码

运行django本地开发服务器

进入到mySite目录下, 并执行python manage.py runserverbash

(venv) D:\Projects\bt_django\mySite>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 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.
November 14, 2019 - 20:43:19
Django version 2.2.7, using settings 'mySite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
复制代码

验证

访问http://127.0.0.1:8000/, 便可看到, 咱们的本地django应用已经运行起来了.服务器

建立app

这里会建立一个在线考试系统, 所以命名为: online_exam_systemsession

$ python manage.py startapp online_exam_system
复制代码

命令执行后, 会在mySite目录下生成如下文件:

编写第一个视图

  1. online_exam_system/views.py中添加以下代码:
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the online exam system index.")
复制代码
  1. online_exam_system/urls.py中添加以下代码:
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
复制代码
  1. 在根 URLconf 文件中指定咱们建立的 online_exam_system/urls.py 模块。在 mySite/urls.py 文件的 urlpatterns 列表里插入一个 include(), 以下:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('es/', include('online_exam_system.urls')),
    path('admin/', admin.site.urls),
]
复制代码
  1. 运行本地开发服务器& 访问路由/es. 运行好本地开发服务器后, 访问: http://127.0.0.1:8000/es/, 便可看到:

初始化数据库

一般, 在settings.py的INSTALLED_APPS 默认包括了如下 Django 的自带应用:

  • django.contrib.admin -- 管理员站点, 你很快就会使用它。
  • django.contrib.auth -- 认证受权系统。
  • django.contrib.contenttypes -- 内容类型框架。
  • django.contrib.sessions -- 会话框架。
  • django.contrib.messages -- 消息框架。
  • django.contrib.staticfiles -- 管理静态文件的框架。 这些应用被默认启用是为了给常规项目提供方便。

默认开启的某些应用须要至少一个数据表,因此,在使用他们以前须要在数据库中建立一些表。请执行如下命令:

$ python manage.py migrate
复制代码

这个 migrate 命令检查 INSTALLED_APPS 设置,为其中的每一个应用建立须要的数据表,至于具体会建立什么,这取决于你的 mysite/settings.py 设置文件和每一个应用的数据库迁移文件。

以上命令执行完成后, 经过Naviacat for MySQl能够看到, 已经为咱们建立了一些数据表, 表名称与关联图以下所示:

后台管理

django默认提供了一套后台管理系统, 以当前工程为例, 若想进入后台管理系统, 须要先建立一个超级管理员账号:

python manage.py createsuperuser
复制代码

按提示操做, 输入相关信息. 而后开启本地开发服务器, 访问: http://127.0.0.1:8000/admin/, 将会看到以下界面

输入用户名和密码后, 默认将会看到:

online_exam_system数据库表设计

online_exam_system数据库表设计最终以下: !未完, 待续!

推送至远端

部署django应用

验证

相关文章
相关标签/搜索