美文网首页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