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 的作用目的
- 创建项目要用到django-admin.exe or django-admin 程序
- 而项目中创建应用是用到项目根目录下的manage.py startapp app_name
- 启动项目也是使用项目根目录下的manage.py runserver ip:port
- 开发完项目应用后,可以使用manage.py collectstatic 命令将静态文件都收集到STATIC_ROOT指定的目录下
- 提一句,给自己的项目的管理页面初始化超级管理员命令:
shell>>python manage.py createsuperuser
# 根据提示创建完成即可
Django学习之二:Django 项目创建 和 应用创建的更多相关文章
- django学习笔记二:一个项目多个App项目搭建
django充许在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户 本次测试 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- (转)Maven学习总结(二)——Maven项目构建过程练习
孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...
- Django 创建第一个Project — Django学习(二)
检查django If Django is installed, you should see the version of your installation. If it isn’t, you’l ...
- Python Django 学习 (二) 【Django 模型】
注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...
- Django学习(二)---使用模板Templates
学会使用渲染模板的方法来显示html内容. 一.Templates是什么: HTML文件 使用了Django模板语言(Django Tamplate Language DTL) 可以使用第三方模板 二 ...
- Django学习之五:Django 之 注意事项及汇总
目录 Django 之 注意事项及汇总 全局 settings model模块-模型模块 URLs模块 Templates System 模版模块 View/HttpRequest/HttpRespo ...
- Django 学习第一天——django 基本介绍和环境搭建
web 应用设计模式(MTV MVC): MTV: M:models 模型:负责业务数据对象与数据库对象: T:templates 模板:负责如何把数据展示给用户: V:views 视图:负责业务逻辑 ...
- Django学习笔记之Django ORM相关操作
一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...
随机推荐
- mac 下SonarQube 安装与使用
参考文件:https://www.jianshu.com/p/aa863cf30406 https://www.jianshu.com/p/b41262fca5b8 jenkins 集成Sonar: ...
- js-day05-JSON-jQuery初体验
JSON数据格式 JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.易于人阅读和编写,同时也易于机器解析和生成(网络传输速度快)JSON是JavaSc ...
- 出现 HTTP Status 500 - Servlet.init() for servlet springmvc threw exception 异常的原因及解决方法
今天做项目的时候遇到了这个问题 其中有一句是Caused by: org.springframework.beans.factory.BeanCreationException: Error crea ...
- 电子科技大学实验中学PK赛(三)-期末测试比赛题解
比赛地址:http://qscoj.cn/contest/33/ A题 国家德比 分析:用b,d,B,D记录两场比赛两支球队的比分,先判断b+B与d+D的大小,如果先者大则拜仁胜,后者大则多特胜:相同 ...
- js 中 的 BOM对象
BOM对象(浏览器对象模型 Browser Object Model) 01.页面的前进和后退 02.移动,调整和关闭浏览器窗口 03.创建新的浏览器窗口 01.window对象 ***** 核心对象 ...
- 算法与数据结构(十一) 平衡二叉树(AVL树)(Swift版)
今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...
- Dora.Interception,为.NET Core度身打造的AOP框架 [5]:轻松地实现与其他AOP框架的整合
这里所谓的与第三方AOP框架的整合不是说改变Dora.Interception现有的编程,而是恰好相反,即在不改变现有编程模式下采用第三方AOP框架或者自行实现的拦截机制.虽然我们默认提供基于IL E ...
- JNI实战(一):JNI HelloWorld
使用最新Android Studio的Cmake,创建一个Native C++项目后,我们就可以看到JNI的Hello World的项目及示例代码了. JNI的项目代码,分为三层:Java层,C++层 ...
- [Swift]LeetCode58. 最后一个单词的长度 | Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...
- [Swift]LeetCode286. 墙和门 $ Walls and Gates
You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ...