Django(一)安装使用及创建运行项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youand_me/article/details/78874057

简介

各环境的使用版本如下:
Linux Mint 18.2 (Ubuntu 16.04);
python版本2.7.12和3.5.2;
Django版本为1.9。

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。Django是一个开放源代码的Web应用框架,由Python写成,遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。采用了MVC的软件设计模式,即模型M,视图V和控制器C。

Django对应Python版本如下:

Django版本 Python 版本
1.5 2.6.5,2.7,3.2,3.23
1.6 2.6,2.7,3.2,3.3
1.7 2.7,3.2,3.3,3.4
1.8 2.7, 3.2 , 3.3, 3.4, 3.5
1.9, 1.10 2.7, 3.4, 3.5
1.11 2.7, 3.4, 3.5, 3.6
2.0 3.5+

安装

  • 安装Django

pip安装

# 这是基于python2版本的安装
sudo apt-get install python-pip
sudo pip install Django==1.9
# 这是基于python3版本的安装
sudo apt-get install python3-pip
sudo pip3 install Django==1.9

Linux自带源安装:

sudo apt-get install python-django==1.9 -y

自带源安装的 Django 一般版本比较旧,而用 pip 可以安装最新的版本。
安装完成后执行下述命令查看安装的版本:

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

创建一个项目

创建项目

在命令行(终端)中,cd(例如我的是:cd /media/youjun/17658FC8797DEE2A/WorkSpace/DjangoWorkSpace)到你想要用来保存代码的目录,然后运行如下命令,如果你怕权限问题在前面加上sudo:

django-admin startproject demo

然后你看到生成的目录结构如下:

 demo
    demo        # 对整个程序进行配置
         __init__.py
         settings.py  # 配置文件
         urls.py      # URL对应关系
         wsgi.py      # 遵循WSGI规范,一般使用 uwsgi + nginx
    manage.py        # 管理Django程序:如下

运行项目

# 在python2版本运行
python manage.py  # 或如下
python manage.py 8000  # 或如下
python manage.py runserver 127.0.0.1:8000
# 在python3版本运行
python3 manage.py  # 或如下
python3 manage.py 8000   # 或如下
python3 manage.py runserver 127.0.0.1:8000

执行上述命令时会出现红:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

这是没有应用数据库设置,先不管。
打开 http://127.0.0.1:8000/ 链接就能看到Django的It worked!界面。

创建app

在项目生成的第一层demo目录下(与manage.py同级),执行如下命令创建一个名为login的app,(版本选择只是多或者少一个数字,后面就不都写出来了):

# 在python2版本运行
python manage.py startapp login
# 在python3版本运行
python3 manage.py startapp login

生成的app目录如下:

login
    migrations        # django orm框架,修改表结构的操作记录(差异化)
    __init__.py       # python3中有没有都一样,python2中必须有
    admin.py          # Django为我们提供的后台管理
    apps.py           # 配置当前app
    models.py         # ORM:写指定的类,通过命令可以创建数据库结构,M层
    tests.py          # 测试
    views.py          # V层

配置文件

要想项目能映射到建立的app,修改第二层demo目录的setting.py文件:

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

    'login',    # changed-----
]

视图函数编辑,编辑生成的login目录里的views.py文件:

from django.shortcuts import render

# Create your views here.


def login(request):
    context = {}
    return render(request, 'login.html', context)

接着,绑定 URL 与视图函数,修改第二层demo目录里的urls.py文件。网页action提交那里action=”/”,要和urls.py 里url(r’^’, views.login),保持一致!!!要是login/全是login/,要是login全是login(网页那里最前面多一个/来引用),否则点击提交会报错::

from django.conf.urls import url
from django.contrib import admin

from login import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', views.login),
]

在第一层demo目录下创建一个templates模板文件夹,用来存放html文件,在templates文件中新建一个login.html文件,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/login" method="post">
        <p>
            <label for="username">用户名:</label>
            <input id="username" type="text" />
        </p>
        <p>
            <label for="password">密&nbsp;&nbsp;&nbsp;&nbsp;码:</label>
            <input id="password" type="text" />
        </p>
        <p>
            <input type="submit" value="提交" />
        </p>
    </form>
</body>
</html>

修改第二层demo目录的setting.py文件,将模板文件路径写入:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],           # changed---------
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

运行测试

然后你可以打开终端去第一层demo目录下,运行项目了(如果上次的没结束,按ctr+c结束):

python manage.py runserver 127.0.0.1:8000

打开 http://127.0.0.1:8000/ 链接就能看到简单的注册界面(login.html)。但是在点击提交按钮的时候出现错误,原因是CSRF验证失败。请求中止,您看到消息是因为网站在提交表单时需要使用CSRF Coo​​kie。出于安全原因,此cookie是必需的,以确保浏览器不被第三方劫持。

我们修改第二层demo目录的setting.py文件,再点击提交就会再跳到登录页面,没错,由于我们只写了一个页面就暂时跳到原来页面,后面再实现不同页面的请求跳转:

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

转下一篇

猜你喜欢

转载自blog.csdn.net/youand_me/article/details/78874057