美文网首页
django框架结构和基本命令

django框架结构和基本命令

作者: joyitsai | 来源:发表于2018-11-27 11:20 被阅读0次

    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: admin@qq.com
    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: admin@qq.com
    Password: 
    Password (again): 
    Superuser created successfully.
    

    相关文章

      网友评论

          本文标题:django框架结构和基本命令

          本文链接:https://www.haomeiwen.com/subject/xkmbqqtx.html