当前位置: 首页 > news >正文

Django项目开发举例之创建开发环境(1)

1.查看已安装的Django版本

$ python -c "import django;print(django.get_version())"

2.创建一个项目

$ django-admin startproject testproject


注意:项目名称不能和Python或Django的 内部组件名称同名,例如:django(与Django自身冲突)或 test(与Python内建的包冲突)这样的名称。

创建完成后会在当前目录下生成一个名为testproject的文件夹,文件夹中含有以下文件:

$ cd testproject/

$ ls -la

total 8

drwxr-xr-x   4 chenqianqian  staff   136  4 17 17:24 .

drwxr-xr-x+ 41 chenqianqian  staff  1394  4 17 17:24 ..

-rwxr-xr-x   1 chenqianqian  staff   809  4 17 17:24 manage.py

drwxr-xr-x   6 chenqianqian  staff   204  4 17 17:24 testproject


$ cd testproject/

$ ls -la

total 24

drwxr-xr-x  6 chenqianqian  staff   204  4 17 17:24 .

drwxr-xr-x  4 chenqianqian  staff   136  4 17 17:24 ..

-rw-r--r--  1 chenqianqian  staff     0  4 17 17:24 __init__.py

-rw-r--r--  1 chenqianqian  staff  3111  4 17 17:24 settings.py

-rw-r--r--  1 chenqianqian  staff   768  4 17 17:24 urls.py

-rw-r--r--  1 chenqianqian  staff   400  4 17 17:24 wsgi.py


  • 外层的testproject/根目录仅仅是项目的一个容器。它的命名对Django没有什么影响
  • manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互。 
  • 内层的testproject/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 testproject.urls)。
  • testproject/__init__.py:一个空文件,它告诉Python这个目录应该被看做一个Python包。 
  • testproject/settings.py:该Django 项目的设置/配置。Django 设置 将告诉你这些设置如何工作。
  • testproject/urls.py:该Django项目的URL声明;你的Django站点的“目录”。
  • testproject/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口。

3.数据库的设置

mysite/settings.py文件中记录了数据库的配置,如果你只是练习我们可以采用默认的数据库配置SQLite,如果想使用一个更健壮的数据库比如PostgreSQL来避免在未来遇到令人头疼的数据库切换问题。我们可以通过修改配置文件中的以下参数:
1)置合适的database binding
2)在 DATABASES 'default'条目中修改以下的配置以匹配你的数据库连接的设置:
#-----------------------------------------------------------------------------------------------------------------------------------

# Database

# https://docs.djangoproject.com/en/1.10/ref/settings/#databases


DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.sqlite3',

        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

    }

}

#-----------------------------------------------------------------------------------------------------------------------------------

当你的项目使用SQLite之外的其他数据库引擎时,就必须添加USER、 PASSWORDHOST等额外的设置。这里我们使用默认的数据库配置SQLite我们不需要事先创建任何东西 —— 数据库文件将会在需要的时候自动创建。

4.settings.py文件中其他参数配置

# Application definition

INSTALLED_APPS = [

    'django.contrib.admin',                    --管理站点

    'django.contrib.auth',                       --认证系统

    'django.contrib.contenttypes',          --用于内容类型的框架

    'django.contrib.sessions',                --会话框架

    'django.contrib.messages',              --消息框架

    'django.contrib.staticfiles',               --管理静态文件的框架

]

它保存这个Django实例中激活的所有的Django应用的名字。 应用可以在多个项目中使用,而且你可以将这些应用打包和分发给其他人在他们的项目中使用。以上都是默认自带的应用。


#语言设置

LANGUAGE_CODE = 'en-us'

#时区设置

TIME_ZONE = 'UTC' 

4.创建数据库表

$ python managed.py migrate

migrate查看INSTALLED_APPS设置并根据testproject/settings.py文件中的数据库设置创建任何必要的数据库表,数据库的迁移还会跟踪应用的变化。你会看到对每次迁移有一条信息。如果你有兴趣,可以运行你的数据库的命令行客户端并输入dt (PostgreSQL), SHOW TABLES; (MySQL)或.schema (SQLite)来显示Django创建的表。

以上包含的默认应用用于常见的场景,但并不是每个人都需要它们。 如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。migrate命令将只为INSTALLED_APPS中的应用运行数据库的迁移。


4.试运行Django项目

切换到项目文件夹下运行以下命令:

$ python manage.py runserver

输出内容:

Performing system checks...


System check identified no issues (0 silenced).

April 17, 2017 - 09:35:05

Django version 1.10.5, using settings 'testproject.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.


这表明你已经启动了Django开发服务器,一个用纯Python写的轻量级Web服务器。 

请用你的浏览器访问 http://127.0.0.1:8000/

默认情况下,runserver命令在内部IP的8000端口启动开发服务器。

如果你需改变服务器的端口,把要使用的端口作为一个命令行参数传递给它。 例如,这个命令在8080端口启动服务器:

$python manage.py runserver 8080

如果你需改变服务器的IP地址,把IP地址和端口号放到一起。 因此若要监听所有的外网IP,请使用(如果你想在另外一台电脑上展示你的工作,会非常有用):

$ python manage.py runserver 0.0.0.0:8000

这样我们就搭建好了一个名为testproject的项目环境。项目是一个特定网站中相关配置和应用的集合。一个项目可以包含多个应用。一个应用可以运用到多个项目中去。



















相关文章:

  • Django项目开发举例举例之创建应用模型(2)
  • Django项目开发举例之应用的管理界面(3)
  • Django项目开发举例之自定义管理界面(4)
  • Django项目开发举例之用户界面视图模版(5)
  • Django项目开发举例之用户界面表单(6)
  • Django中Meta类详解
  • No python interpreter configured for the project
  • Django中各文件常用参数详解
  • Django-xadmin的使用
  • Linux定时任务Crontab命令详解
  • Oracle随机抽取数据
  • ORACLE输出结果到文件
  • 解决sqlplus中输错命令时的删除、光标键不能使用问题
  • BETWEEN AND的边界值问题
  • ORACLE数据库已知当前日期求上月5号和当月5号
  • 【391天】每日项目总结系列128(2018.03.03)
  • 3.7、@ResponseBody 和 @RestController
  • const let
  • Docker 笔记(2):Dockerfile
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • gf框架之分页模块(五) - 自定义分页
  • Iterator 和 for...of 循环
  • Java-详解HashMap
  • JS 面试题总结
  • MQ框架的比较
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • V4L2视频输入框架概述
  • web标准化(下)
  • 闭包--闭包之tab栏切换(四)
  • 创建一个Struts2项目maven 方式
  • 聚簇索引和非聚簇索引
  • 如何编写一个可升级的智能合约
  • 鱼骨图 - 如何绘制?
  • 在Mac OS X上安装 Ruby运行环境
  • 你对linux中grep命令知道多少?
  • 阿里云重庆大学大数据训练营落地分享
  • !!Dom4j 学习笔记
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计高校学生选课系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (一)基于IDEA的JAVA基础10
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • ... 是什么 ?... 有什么用处?
  • .libPaths()设置包加载目录
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET文档生成工具ADB使用图文教程
  • @Import注解详解
  • @Resource和@Autowired的区别
  • @WebServiceClient注解,wsdlLocation 可配置