Diango基础学习

python环境和Diango提前装好

1.终端新建一个mysite项目:django-admin startproject mysite(如果 django-admin 不行,请用 django-admin.py)
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py  地址
└── wsgi.py  部署服务器时使用
子目录 mysite 中是一些项目的设置 settings.py 文件,总的urls配置文件 urls.py 以及部署服务器时用到的 wsgi.py 文件,
__init__.py 是python包的目录结构必须的,与调用有关。

2.终端新建一个APP,名字是learn:

cd mysite 

python manage.py startapp learn # learn 是一个app的名称
learn/
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py  视图

3.把我们新定义的app加到settings.py中的INSTALL_APPS中

修改 mysite/mysite/settings.py

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'learn',
)
新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件

4.定义视图函数(访问页面时的内容)

我们在learn这个目录中,把views.py打开,修改其中的源代码,改成下面的

# coding:utf-8

from django.http import HttpResponse
def index(request):
    return HttpResponse(u"欢迎光临 自强学堂!")


第二行引入HttpResponse,它是用来向网页返回内容的,就像Python中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。第一行是声明编码为utf-8, 因为我们在代码中用到了中文,如果不声明就报错.

我们定义了一个index()函数,第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含getpost的内容,用户浏览器,系统等信息在里面(后面会讲,先了解一下就可以)。

函数返回了一个 HttpResponse 对象,可以经过一些处理,最终显示几个字到网页上

5.定义视图函数相关的URL(网址)  (即规定 访问什么网址对应什么内容)

我们打开 mysite/mysite/urls.py 这个文件, 修改其中的代码:

由于 Django 版本对 urls.py 进行了一些更改:

Django 1.7.x 及以下的同学可能看到的是这样的:

1
2
3
4
5
6
7
8
9
10
11
from django.conf.urls import patterns, include, url
 
from django.contrib import admin
admin.autodiscover()
 
urlpatterns = patterns('',
    url(r'^$''learn.views.index'),  # new
    # url(r'^blog/', include('blog.urls')),
 
    url(r'^admin/', include(admin.site.urls)),
)

Django 1.8.x - Django 2.0 版本的同学,Django 官方鼓励(或说要求)先引入,再使用:

1
2
3
4
5
6
7
8
9
from django.conf.urls import url
from django.contrib import admin
from learn import views as learn_views  # new
 
 
urlpatterns = [
    url(r'^$', learn_views.index),  # new
    url(r'^admin/', admin.site.urls),
]

Django 2.0 版本的同学,urls.py 有比较大的变化(a)(上面 Django 1.8 的在 2.0 中也可以用,是兼容的)

1
2
3
4
5
6
7
8
9
from django.contrib import admin
from django.urls import path
from learn import views as learn_views  # new
 
 
urlpatterns = [
    path('', learn_views.index),  # new
    path('admin/', admin.site.urls),
]

以上都修改并保存后,我们来看一下效果!

6.在终端上运行 python manage.py runserver 我们会看到类似下面的信息:

1
2
3
4
5
6
7
8
9
10
11
12
$ 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.
 
December 14, 2017 - 15:09:47
Django version 2.0, using settings 'mysite2.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

提示:上面有一些数据库相关的提示,但目前我们没有用到,暂时先忽略他们。

7.我们打开浏览器,访问 http://127.0.0.1:8000/

原文地址:https://www.cnblogs.com/minna/p/10253803.html