缘起

既然python都学了,学习python的时候感觉是相见恨晚,一种新的编程语言带给我一种新的思考问题的方式,为了巩固学过的东西并进一步学习python,就想学学Django,看看会不会带给我关于web新的东西。把自己学习过程记录在这里,发现每次写博客都是对学习过的东西的一次整理和提升。

新建一个project

startproject

python和Django的安装不再详述,我的环境python2.7,Django1.9.7 。

django-admin startproject mysite

上面这句话创建了一个project名称位mysite,这个名称是可以修改的,目录结构如下:

.
├── manage.py
└── mysite├── __init__.py├── settings.py├── urls.py└── wsgi.py

对于上面几个文件的介绍:

manage.py:与Django进行交互的命令行工具,比如后面根据model生成数据库表结构、供开发使用的server等都是使用该工具,在manage.py的同级目录使用python manage.py 可以看到可以使用的命令列表。

mysite:这个才是工程的包名。

__init__.py:表明mysite是一个包。

setting.py:Django的配置文件,包括工程的app配置、数据库配置、语言配置等。

urls.py:Django的dispatcher,根据不同的url映射到不同的视图。

wsgi.py:WSGI是web server gateway interface,这个文件是使project符合这种协议的入口点(entry-point)

runserver

python manage.py runserver

在manage.py的同级目录下运行这个命令就可以看到以下内容:

Performing system checks...System check identified no issues (0 silenced).You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.July 10, 2016 - 09:20:57
Django version 1.9.7, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

说明我们成功创建了一个project,在浏览器中输入 http://127.0.0.1:8000/,看到以下画面表示成功:

Django自带了一个开发服务器,便于开发使用(Django官方强调不能用作生产环境),默认端口号是8000,如果想运行在别的端口号,以下面的方式运行即可,比如:8080

python manage.py runserver 8080# 如果想在局域网内其他电脑上访问你的站点python manage.py runserver 0.0.0.0:8080

按Ctrl C停止服务器。

新建一个app

一个project可以又多个app,一个app可以同时属于多个project。通过以下命令创建一个app(在project目录下)

django-admin startapp polls

创建app后的目录结构,因为Django会自动创建一系列文件,我们需要明白每个为文件的作用

.
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls├── admin.py├── apps.py├── __init__.py├── migrations│   └── __init__.py├── models.py├── tests.py└── views.py

polls:app的根目录

admin.py:Django自带了一个管理界面,这个文件可以注册model在界面中管理

__init__.py:表明polls也是一个包

migrations:用来初始化数据库,在执行python manage.py makemigrations 的时候会自动生成一个文件在这里

__init__.py:表明migrations也是一个包

models.py:在这个文件里面定义model类

tests.py:写测试代码

views.py:视图,Django映射urls.py里面的url的时候,在views.py里面查找对应的处理方法

添加view

编辑views.py文件

from django.shortcuts import render
from django.http import HttpResponse# Create your views here.
def index(request):return HttpResponse("hello world")

添加映射

在polls目录下新建urls.py文件

from django.conf.urls import url
from . import viewsurlpatterns = {url(r'^$', views.index, name = 'index'),
}

将polls的urls.py告诉django,添加到mysite/urls.py

from django.conf.urls import url, include
from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^polls/', include('polls.urls')),
]

将我们polls包下面的urls.py include进去。大家注意到了polls/urls.py相当于是mysite/urls.py下面的一个子文件,两者 的写法相似,url的第一个参数是一个正则表达式,第二个参数就是映射到的视图或者包含的类,注意到原来有一个url(r'^admin/', admin.site.urls),这是Django管理界面的配置,还有就是我们写的正则表达式是以polls/开始的url,也就是所有以该前缀开始的url都会被分发到polls/urls里面进一步寻找对应的视图。

接下运行server,访问http://127.0.0.1:8000/polls/就可以看到以下内容——也就是我们在views.py里面写的内容

hello world

总结

其实主要就是通过django提供的一些命令我们基本上就完成了一个简单的hello world,说到了Django的目录结构,简单涉及了一些view和url的写法。


代码位置

http://pan.baidu.com/s/1hs7ApwS

转载于:https://www.cnblogs.com/sunshine-2015/p/5658283.html

frist Django app — 一、 创建工程相关推荐

  1. Django - 创建工程 和 APP 与 开发工具

    1.安装 在这里使用的是Anaconda,直接使用Anaconda命令进行安装; (E:\Anaconda3) C:\Users\yuan>conda install django// 安装指定 ...

  2. 创建Django项目和模型(创建工程、子应用、设置pycharm环境、使用Django进行数据库开发的步骤)

    1.创建Django项目 文档:Writing your first Django app, part 1 | Django documentation | Django 步骤 创建Django项目 ...

  3. Django学习手册 - 创建Django工程项目以及APP

    前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的 ...

  4. Django环境安装和创建工程

    环境安装 1. 创建虚拟环境 mkvirtualenv dj_python -p python3 注意需要联网,虚拟环境名为dj_python,其中- p指定python版本为python3 # 虚拟 ...

  5. django 命令行创建项目app

    django 命令行创建项目app 方法一: 在pycharm中打开Terminal 找到自己想要创建的文件目录下 创建app django-admin startapp app名称 方法二: 第一步 ...

  6. django app注册过程

    django app注册过程 相关知识 sys.modules[__name__]获取本模块 collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple n ...

  7. [Django]APP级别的静态文件处理

    2019独角兽企业重金招聘Python工程师标准>>> 转载自 limodou的学习记录 [Django]APP级别的静态文件处理 静态文件在 django 中并不是非常简单的事情. ...

  8. Qt_Window@Qt Command Prompt从命令行创建工程

    #include <QApplication> #include <QLabel>int main(int argc, char *argv[]) {QApplication ...

  9. Django 基础,创建一个Django,并成功在网页中运行

    主要分为模型层(models).视图层(views).模板层.表单 创建第一个项目的步骤 创建项目 在终端输入cd进入到要放置代码的文件夹   回退文件夹cd .. 执行以下命令,就会自动创建项目和相 ...

  10. 和pythondjango后端_webGIS实践:4_0_python django后端搭建web工程

    仅有geoserver发布的WMS服务和前端页面,是无法部署到主机上提供服务的,所以,我们需要有一个后台. 前面<从零开始,构建电子地图网站>中已经讲过了JAVA springboot工程 ...

最新文章

  1. C++_STL——map、multimap、set、multiset
  2. 一年半跻身网约车业务前二,现发起首个自动驾驶联盟,T3出行是一家怎样的公司?...
  3. python面向对象基础
  4. 350. Intersection of Two Arrays II 两个数组的交集 II
  5. Appcan——Box
  6. 链表之判断一个链表是否为回文结构(一)
  7. 动手学无人驾驶(6):基于IMU和GPS数据融合的自车定位
  8. Python实现自动推本地github博客到远程仓库
  9. Linux IPC实践(5) --System V消息队列(2)
  10. 最长路径算法 c语言_「算法」求二叉树的最长同值路径
  11. 解决U盘安装Win10报错:No bootbale devices found.
  12. Ulysses for Mac(最好用的纯文本编辑器)v22(65099)直装版
  13. 看到前一篇文章的感慨
  14. 内存泄露的检测工具——Valgrind
  15. html表格左右布局,css table布局大法,解决你大部分居中、多列等高、左右布局的问题...
  16. JAVA生成阿里云直播推流和拉流
  17. 【MobileNet V2】《MobileNetV2:Inverted Residuals and Linear Bottlenecks》
  18. ​联想小新潮7000-13更换ssd并重装系统记录
  19. 华三路由器链路聚合配置(华三交换机配置)
  20. 高精度高性能PI值计算程序设计和验证

热门文章

  1. Mysql insert without auto-increase when duplicate
  2. Asp.Net Core 第03局:Startup
  3. Re0:DP学习之路 01背包如何打印路径?
  4. postgresql 数据库路径迁移
  5. HDU6135 拓展KMP模板
  6. 5028: 小Z的加油店(线段树)
  7. 程序人生之二 IoC—如何才能快乐
  8. [翻译]XNA外文博客文章精选之sixteen(下)
  9. IFRAME跨域名的解决方法,终结版(小张.NET原创)
  10. Double binary trees