美文网首页Django
django01-最基本的项目实现

django01-最基本的项目实现

作者: link_king | 来源:发表于2018-11-14 21:40 被阅读0次

    Django

    创建一个Django项目,url的理解

    #进入到指定要存放项目的目录,创建 HelloWorld 项目
    django-admin startproject HelloWorld
    #进入HelloWorld 创建 hello 应用
    python manage.py startapp hello
    
    #先实现一个最基本的视图与url配置
    #hello/views.py
    from django.http import HTTPResponse
    #----第一步----
    def index(request):
        return HttpResponse('你好骚啊')
    #HeloWorld/urls.py
    from hello.views import index # 导入视图函数
    #----第二步----
    urlpatterns = [
    url(r'^index/',index)#先去匹配index(可以随意设置)前缀,访问到views里的index函数
    ]
    
    #访问http:127.0.0.1:8000/index/   会显示字符串
    
    #双层路由的实现过程
    #1.在hello/下新建urls.py
    from django.conf.urls import url
    from hello.views import index
    #----第一步----
    urlpatterns = [url(r'^index/',index)]
    #2.更改HelloWorld/urls.py
    from django.conf.urls import url, include
    #----第二步----需要匹配到另外的路由时要用include----
    urlpatterns = [url(r'^hello/',include('hello.urls'))]
    
    #3.在HeloWorld/settings.py下添加
    INSTALLED_APPS =['hello']
    
    #访问http:127.0.0.1:8000/hello/index/   会显示字符串
    
    练习:新建一个应用showtime,每次刷新页面显示不同的时间。
    #1.python manage.py startapp showtime
    #写showtime/views.py
    from django.http import HttpResponse
    from datetime import datetime
    #----第一步----
    def now(request):
        return HttpResponse('现在的时间是:%s'% datetime.now())
    
    #在showtime下面新建一个urls.py
    from django.conf.urls import url
    from showtime.views import now#在这里
    #----第二步----
    urlpatterns = [url(r'^time/',now)]
    
    #----第三步----
    #在HeloWorld/settings.py下添加
    INSTALLED_APPS =['showtime']
    #在HeloWorld/urls.py中添加 
    url(r'^showtime/',include('showtime.urls'))
    
    #访问127.0.0.1:8000/showtime/time/ 显示时间
    

    基本模板

    练习:在上一个练习中,使用template显示页面内容。
    
    在上面基础上更改
    1.在showtime文件夹中新建一个文件夹templates
    2.再在里面新建一个showtime文件夹(用来区分,以免重名出现冲突)
    3.在里面新建一个html文件now.html
    #----第一步----
    #更改showtime/views.py
    from django.shortcuts import render
    def now(request):
        return render(request,'showtime/now.html',{'now':datetime.now()})#render参数(request,'模板的名称',时间参数#是一个字典)
    #----第二步----
    #now.html
    现在的时间是:{{now}}#{{}}可以取到变量的值。now是views.py里面的键
    
    

    基本模型

    #hello/models.py
    from django.db import models
    #----第一步----创建模型----
    #类会对应数据库中的表
    #类的对象会对应数据库中的一条数据
    #类的属性(如name)对应数据库中的字段
    class Grade(models.Model):
    #注意:
    #一般类以大写字母开头,模型类均继承自 models.Model
        name = models.CharField(max_length=20)
                      #字符串, 需要加最大长度
        date = models.DateField()
                      #日期
        girlNum = models.IntegerField()
                        #整数
        boyNum = models.PositiveIntegerField()
                        #正整数
        is_delete = models.BooleanField()
                        #布尔
    默认会生成一个id主键 属性是(整数 自增长) 
    写完之后要做数据迁移,就会把类映射到数据库中
    #----第二步----上传到数据库----
    python manage.py makemigrations#会生成中间文件
    python manage.py migrate#执行迁移,把上面生成的文件写入数据库
    刷新数据库会看到有一个hello_grade表 hello是app的名字,表示在hello下面创建的grade表
    
    #----第三步----把数据显示到模板----
    #hello/views.py
    from django.shortcuts import render
    from .models import Grade 
    def index(request):
        #取到所有数据
        grades = Grade.objects.all()
        #数据库操作参考:http://www.runoob.com/django/django-model.html
        #通过render把所有班级渲染到模板上
        return render(request, 'hello/list.html' ,{'grades':grades})#通过字典传参,模板可通过key值取得数据,key名可以改
        
    #list.html
    <h3>班级列表<h3>
    <ul>
        {%for grade in grades%} #循环取出数据,后面的grades对应上面的key,上面key改了这里也要改。
            <li>
                班级名称:{{ grade.name }} <br> 
                #这里的grade就是上面循环出来的grade
                成立日期:{{ grade.date }} <br>
                女生数量:{{ grade.girlNum }} <br>
                男生数量:{{ grade.boyNum }} <br>
            </li>
        {%endfor%}
    </ul>
    #----第四步----
    #建好模型后要在同一个APP下面注册一下
    #hello/admin.py
    from django.contrib import admin
    from hello.models import Grade
    admin.site.register(Grade)
    
    from django.http import HttpResponse
    
    #数据库操作
    
    from wtf.models import ZQURedio
    
    def testdb(request):
        test1 = ZQURedio(name='runoob',date='2018-09-06',girlNum='1', boyNum='3',is_delete='False')
        test1.save()
        return HttpResponse("<p>数据添加成功!</p>")
    
    

    服务器的启动

    python manage.py runserver [ip:port]

    admin后台管理:

    创建超级用户:python manage.py createsuperuser

    访问admin后台:http://127.0.0.1:8000/admin/

    相关文章

      网友评论

        本文标题:django01-最基本的项目实现

        本文链接:https://www.haomeiwen.com/subject/hfusfqtx.html