zoukankan      html  css  js  c++  java
  • Django学习之二:Django 项目创建 和 应用创建

    Django 项目创建 和 应用创建

    创建一个Django项目

    都是在相应平台的命令行环境下操作:
    1. 进入用于存放项目的目录下
    	1.1 windows下切换目录:先进入具体的分区磁盘中如E盘就输入‘E:’;然后CD 进入E盘要创建项目的文件夹下'CD Pythonworkspace';
    	1.2 Linux下直接'cd /home/operation/Pythonworkspace'  
    2. 在项目目录下执行命令:django-admin startproject mysite  # 这里mysite就是项目名
    3. 项目创建完成会生成项目目录mysite
    4. 可选操作,但是一般这样做:在项目级别下创建一个static目录,用于存放整个项目app都会用到的静态文件,比如一些前端框架like bootstrap,jQuery.
    

    启动django开发server

    django开发server是一个轻量级Web server,纯python代码写的。前提已经说了这是一个轻量级的开发服务,不用于生产web服务器中,如apache。django只是一个web框架而不是webserver(web服务器) ,所以这里创建启动的django服务不能当作生产环境的web-server用,也不能替代像apache这样的web server生产环境。

    命令行:
    1. 进入项目mysite目录,注意是外层的mysite项目目录,而不是项目下的内层mysite,内层mysite是一个python package.
    2. 运行外层mysite目录(以后都叫项目目录)项目目录下的manager.py程序,这个是命令行工具,让我们可以和我们的django project项目进行交互已各种方式。
    3. 启动django项目,基于wsgi.py程序提供的socket和http web服务。命令:python manage.py runserver
    
    启动程序会输出:
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 14 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.
    July 17, 2018 - 16:10:22
    Django version 2.0.7, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    
    4. 指定服务ip地址和端口,可以在启动命令后指定参数:如 python manage.py runserver 0:8080
    

    验证项目服务启动成功

    访问:http://127.0.0.1:8000
    可以看到恭喜页面,表示项目服务启动成功。

    django框架开发服务自动加载重启

    也就是说,django框架的这个开发server会自动加载项目,当启动后有代码被修改后。
    对于项目中存在的文件进行修改其中的code,是会触发自动加载生效;但是对于添加文件是不会触发重启加载的,所以必须手动重启django服务。

    在项目中创建一个应用application

    在django中写的每一个应用都要遵循一个特定约定的python package。也就是我们的应用都在一个由django工具生成的基础目录结构中。也就是通过这个工具生成了一个能够在django框架运行的应用环境,我们只需要关注于写业务代码而不是去创建这样一个应用目录环境。

    what's the difference between a project and an app?

    An app is a Web application that does something - e.g., a Weblog system, a database of public records or a simple poll app.
    一个app是一个web应用,如:一个博客系统,一个公开记事本,一个简单的投票应用
    A project is a collection of configuration and apps for a particular website.
    一个项目是一个完整网站的配置和应用的集合
    A project can contain multiple apps.
    一个项目可以包括多个应用
    An app can be in multiple projects.
    一个应用可以用于多个项目当中

    一个应用可以在python的任何一个路径中,只要python能找到该应用。
    django中最好应用还是创建在和项目的manage.py同级,这样应用可以被方便导入。而不是成为内层mysite的一个子模块(即放到内层mysite中是不明智的)。

    创建自己的APP

    命令行:
    1. 进入项目目录,即manage.py所在目录
    2. 执行行创建命令:python manage.py startapp polls
    3. 将会看到manage程序创建了一个django的应用环境目录polls,该目录里面已经创建好了一些有用文件。
    4. polls 目录结构 就是 poll投票app的家目录。
    5. 然后创建一些规范存放相应文件或者目录:a) 模版目录templates;b) 静态文件目录static;c) 应用自己的urls.py文件;d)再在static目录中创建一个和应用名相同的子目录,这个就是放置app直接相关的静态文件的目录了; e) 类似上一条,对于应用直接相关template文件,也要在templates目录下创建一个和应用名相同的子目录;f) 创建templatetags目录,存放自定义filter和tag的目录,确保目录下有__init__.py文件;
    6. 对于第五条为什么那样创建目录不懂的同学,可以参考官方文档或者看下我的《Django 内置组件应用》有关django.contrib.staticfiles单元。
    

    注意项

    django-admin 与 manage.py 的作用目的

    1. 创建项目要用到django-admin.exe or django-admin 程序
    2. 而项目中创建应用是用到项目根目录下的manage.py startapp app_name
    3. 启动项目也是使用项目根目录下的manage.py runserver ip:port
    4. 开发完项目应用后,可以使用manage.py collectstatic 命令将静态文件都收集到STATIC_ROOT指定的目录下
    5. 提一句,给自己的项目的管理页面初始化超级管理员命令:
    shell>>python manage.py createsuperuser
    # 根据提示创建完成即可
    

  • 相关阅读:
    python+django+uwsgi 搭建环境
    python系列-3 pyenv的使用
    生产消费者队列(TaskCompletionSource)的应用
    socket
    Redis 参考
    webform调用windows服务
    文件编码格式获取
    webform版部分视图与请求拦截
    asp.net 自定义节配置 (configSections下的section)
    组合配置草稿
  • 原文地址:https://www.cnblogs.com/ZJiQi/p/9324838.html
Copyright © 2011-2022 走看看