django框架结构和基本命令

1. MTV模型

web框架,指为解决一个开放性的问题而设计的具有一定约束性的支撑架构。

对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

MTV模型拆分开来讲,就是下面三个部分:

  • Model(模型):负责业务对象与数据库的对象(ORM)
  • Template(模板):负责如何把页面展示给用户
  • View(视图):负责业务逻辑,并在适当的时候调用Model和Template
    Django还有一个URL分发器,负责为View视图逻辑分发URL,启动项目后即可通过URL访问相应的页面。

2. Django原理

图1.1: django框架的工作流程原理

3. Django项目开发流程及基本命令

1. 安装django

python2 –m pip install django==1.8.2
pip install django==1.8.2

2. 创建一个django项目

(django_py2) kakyoku@ubuntu:~/Desktop/Projects$ django-admin startproject myWeb

3. 创建django应用

(django_py2) kakyoku@ubuntu:~/Desktop/Projects/myWeb$ python manage.py startapp myBlog

通过tree命令查看myWeb项目中的目录结构:

(django_py2) kakyoku@ubuntu:~/Desktop/Projects/myweb$ tree
.
├── db.sqlite3
├── manage.py
├── myBlog
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── myweb
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
3 directories, 16 files

其中:

  • manage.py 是django项目里面的脚本工具,通过它可以调用django shell和数据库等。
  • settings.py 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
  • urls.py 负责为View视图逻辑分发URL。

4. 启动django项目

在项目目录下,通过manage.py脚本工具可以启动django项目,同时可以指定端口:

(django_py2) kakyoku@ubuntu:~/Desktop/Projects/myweb$ python manage.py runserver 8080
Performing system checks...
System check identified no issues (0 silenced).
November 26, 2018 - 01:57:54
Django version 1.8.2, using settings 'myweb.settings'
Starting development server at http://127.0.0.1:8080/
Quit the server with CONTROL-C.

5. 同步数据库

  • migrate同步数据库
python manage.py makemigrations
python manage.py migrate

通过python manage.py migrate同步数据库的话,需要手动创建超级管理员,输入用户名、邮箱、密码:

python manage.py createsuperuser
Username (leave blank to use 'kakyoku'): admin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.
  • syncdb同步数据库

通过python manage.py syncdb同步数据库时,会自动创建超级管理员,当然需要你填写用户名、邮箱和密码:

python manage.py validate #检验数据模型Model语法合法性
python manage.py makemigrations #数据库语句生成
python manage.py syncdb #将数据模型同步到数据库,同时自动创建超级管理员账号
(django_py2) kakyoku@ubuntu:~/Desktop/Projects/myweb$ python manage.py syncdb
/home/kakyoku/.virtualenvs/django_py2/local/lib/python2.7/site-packages/django/core/management/commands/
syncdb.py:24:RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
  warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK

You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): y
Please enter either "yes" or "no": yes
Username (leave blank to use 'kakyoku'): admin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

你可能感兴趣的:(django框架结构和基本命令)