frist Django app — 1、 建立工程(转载)

转载地址:http://www.javashuo.com/article/p-gqwovsip-eq.htmlhtml

缘起

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

新建一个project

startproject

python和Django的安装再也不详述,个人环境python2.7,Django1.9.7 。web

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 能够看到可使用的命令列表。django

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

__init__.py:代表mysite是一个包。浏览器

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

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

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

新建一个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 views

urlpatterns = {
    url(r'^$', views.index, name = 'index'),
}
复制代码

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

复制代码
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    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

相关文章
相关标签/搜索