Django的安装与配置

django版本为1.11     <和django2.1相比会在 views.py中的写法有些不同>

django的安装

pip install django

创建django项目

指定目录下,cms输入:

django-admin startproject mysite

项目的目录结构显示如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

运行项目:

在manage.py所在目录,即项目的根目录下:

python manage.py runserver

浏览器输入localhost:8000,即可看到“Congratulations!”页面

 

修改数据库配置:

在mysite/settings.py中,修改DATABASES项,本例中已mysql为例:

DATABASES = {
    'default': {
        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
        "ENGINE": "django.db.backends.mysql",
        # DB name or path to database file if using sqlite3.
        "NAME": "college",
        # Not used with sqlite3.
        "USER": "root",
        # Not used with sqlite3.
        "PASSWORD": "root",
        # Set to empty string for localhost. Not used with sqlite3.
        "HOST": "localhost",
        # Set to empty string for default. Not used with sqlite3.
        "PORT": "3306",

        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

为了适用于Mysql数据库配置,需要修改mysite/__init__.py

import pymysql

pymysql.install_as_MySQLdb()

然后执行数据库迁移命令:python manage.py migrate,

该命令会去查找mysite/settings.py中的INSTALLED_APPS,然后把mysite 这个project中所包含的app内的model都migrate到所设置的数据库中。

创建app

在已有的project下创建一个名为polls的app(app是一个可以复用的东东,可以被不同的project引用):

python manage.py startapp polls

创建完成后,polls目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

然后要把我们自定义的polls这个app添加到mysite这个project中,具体操作是:修改mysite/settings.py,找到INSTALLED_APPS,添加‘polls.apps.PollsConfig’:

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

创建models

polls/models.py

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    
    class Meta:
        db_table = "question"
        

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    
    class Meta:
        db_table = "choice"

然后根据我们创建的model在数据库中生成相应的表:

python manage.py makemigrations polls
python manage.py migrate

创建templates

在polls目录下创建templates目录,templates目录下创建polls目录,polls目录下创建Index.html

编辑index.html

{% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

创建view

polls/views.py

from django.shortcuts import render

from polls.models import Question


def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    context = {'latest_question_list': latest_question_list}
    return render(request, 'polls/index.html', context)

创建urls

urls定义了所有的访问

polls/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

注册urls

就是将polls application中的urls注册到mysite project的urls中来,如下所示,所有url中包含“polls/”的都会走入polls的urls内。

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

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

最后python manage.py runserver启动项目,如果出现一下界面,那么代表访问views.index成功:

使用Django后台系统

因为我们现在的question表中还没有具体的数据,那么要如何在question表中添加数据呢?可以写接口,也可以通过django的后台管理系统实现界面编辑添加数据,而不需要添加任何一行代码,这里我们选择后一种。

首先创建后台管理用户:

python manage.py createsuperuser

安装提示完成用户创建后,访问localhost:8000/admin 即可登陆。

为了在后台管理我们自己的model:question,answer,需要做一下配置:

polls/admin.py

from django.contrib import admin

from .models import Question, Choice

# Register your models here.
admin.site.register(Question)
admin.site.register(Choice)

在这个后台页面可以随意编辑内容,然后数据会插入后台的question或choice表中。

然后再访问 localhost:8000/polls就可以看到question表中的内容了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值