一、django框架的创建

1)第一种方法:cmd命令行里面进行创建

 a、创建一个文件夹

 b、打开文件夹,按照shift键,鼠标右键,点从此处打开命令行窗口

运行django: python mannage.py runserver

2)第二种方法:pycharm里面进行创建

3、运行django框架

 1、点击三角符号,运行

 2、生成对话框

3、点击网址,

 

二、分析各个文件夹的意义

1)

 

  noevl          app/应用

  novel          项目

  manage.py      管理文件

  templates       存放模板文件的文件夹

2)具体分析各个文件的意义

Projects

  novel       :APP 文件名

    static

      css

      js

      img

    __init__.py  :声明当前文件夹可以是一个模块

    admin.py    :数据库如果希望被后台看到,需要在这个文件下进行注册

    apps.py

    models.py  :映射了数据库所创建的表

    tests.py   :实现某些测试驱动

    viems.py     :index函数返回index.html,但要templates里面去找index.html文件

  templates

    index.html

    login.html

  webapp

    __init__.py

    settings.py  :定义了静态文件存放的路径,STATIC_URL = '/static/'。定义了数据库的类型,也就是连接所在的的数据库

    urls.py    :定义路由:urls(r'^$',viems.index)。==》去viems.py找到index函数

    wsgi.py 

三、创建应用的前的准备工作

1)修改成中文界面

LANGUAGE_CODE= 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

2)debug模式

debug : 调试模式,开发者模式。再发布前一定要关闭

四、写入第一个程序,hello world

1)创建路由

2)创建视图

 

3)注意 路由 和视图 直接的关系

打开网页

五、前端文件与django的结和

 前端程序:html,css,js,jquery  

   后端程序:python,数据库

 1)html文件放入templates里面

 2)视图引入 index.html文件

3)运行django程序

注意,如果在python2中有变化

  在python2中,需要注意在setting里面查看是否有添加novel,不然会找不到html的路径,会出现下面个情况

 但在python3中还是要加上,虽然不加novel,能找到html文件,但找不到css其他的静态文件

4)静态文件的存放目录,static

  a) 在app,也就是novel里面创建static文件夹

  b) 把css,js,和img图片文件放入其中

 c)检查前端html的文件导入静态文件的路径是否正确

 写法1,不推荐。因为如果需要改静态文件的路径,后期维护麻烦

<link rel="stylesheet" href="static/css/style.css" />

2、写法2

 

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css'%}" />
例如html文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主页</title>
</head>
<body>
    {{ today }}
    <img src="{% static "img/1.jpg" %}">
</body>
</html>

 升级写法

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主页</title>
</head>
<body>
    {% if person_list %}
        {% for person in person_list %}
            <li>{{ person.account }}</li>
        {% endfor %}
    {% else %}
        <strong>没有用户</strong>
    {% endif %}
</body>
</html>
View Code

对应的模板文件

def index(request):
    #return HttpResponse('hello worlddddd')
    today = '今天天气不好'
    content = {'today':today}
    return render(request,'index.html',content)
def index(request):
    #return HttpResponse('hello worlddddd')
    person_list = models.Person.objects.all()
    content = {'person_list':person_list}
    return render(request,'index.html',content)
六、创建html文件也django结合
1)创建dy.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>电影下载</title>
</head>
<body>
<li><a href="#">{{ name1 }}</a> </li>
<li><a href="#">{{ name2 }}</a> </li>
</body>
</html>

  2)定义路由

url(r'^dy',views.dy),

  3)定义视图

def dy(request):
    names = {
        'name1':"战狼2",
        'name2':"羞羞的铁拳",
    }
    return render(request,'dy.html',context=names)

  4)访问,http://127.0.0.1:8000/dy

六、让django连接数据库
1)在webapp文件夹里面找到settings.py
# 默认数据库, sqlite3
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

# 使用的数据库,mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'novel',
        'USER': 'novel',
        'PASSWORD':'helloworld',
        'RORT':'3306',
    }

2)从novel里面找到models.py文件。这是对数据库增删改查的文件

  1、models.py对没有数据库的情况下,可以映射成真实的数据库

  a)写上一个类,没一个类,就相当于与一个表

from django.db import models

# Create your models here.

class Person(models.Model):
    account = models.CharField(max_length=15)
    passwd = models.CharField(max_length=15)

   b)寻找差异文件,执行 python3 manage.py makemigrations  

   c)创建表 python3 manage.py migrate  创建表

   d)admin.py注册

       

  e)打开后台网页展示了刚刚创建的数据

         

 

  2、models.py对已经存在数据库的情况下,通过命令把数据库映射成模型文件

 python manage.py inspectdb > novel/models.py  生成了models.py文件

3)视频里面导入模型

  测试是否获取到了数据

print(NovelCopy.objects.get(id=1).novelname)
#!/usr/bin/env python
#-*-coding: utf8-*-
from django.shortcuts import render
from django.http import HttpResponse

from novel.models import NovelCopy
# Create your views here.
def index(request):
    print(NovelCopy.objects.get(id=1).novelname)
    # NovelCopy 数据库中的表
    # objects 类的一个方法,相当于进去查看表的内容的
    # get(id=1))  找到这个id
    # novelname 这个id下面的一个字段
    return render(request,'index.html')

 七、前端随机生成数据库内容,如下

  1)修改dy.html文件

{% for name in movies  %}
<li><a href="#">{{ name.title }}</a> </li>
{% endfor %}

  2)修改viems.py视图文件,前提是数据库连接好,并且操作数据库的models.py也写好

def dy(request):
    moviename = dymodels.objects.all[:10]  # 获取数据库的表里面的所有内容随机抽取10
    names = {
        'movies':"moviename",
    }
    return render(request,'dy.html',context=names)

 

 



 

posted on 2018-12-24 11:07  可口_可乐  阅读(11467)  评论(0编辑  收藏  举报