注:(1)在前面补充一下,如果重新启动这个django项目是,run manage.py task是进不去的,需要重新设置环境变量(File--->settings--->Languages&Frameworks--->Django),第一个框选择项目路径E:\PycharmProjects\Web_server,第二个框选择E:\PycharmProjects\Web_server\.idea,第三个框选择manage.py,第四个框选择(...--->+)其中Name和Value分别是manage.py中的("DJANGO_SETTINGS_MODULE", "Web_server.settings")
(2)搭建虚拟环境:windows上命令控制行:virtualenv --no-site-packages venv(其中 --no-site-packages表示已经安装到系统Python环境中的所有第三方包都不会复制过来),启动虚拟环境:venv-->Scripts-->activate,退出虚拟环境:deactivate
前几天做的了。一直没发上来,下面是搭建django框架的步骤
- 创建django项目,并创建app(windows下安装django框架命令:pip install django),第二张图是创建之后的目录,其中booktest中的urls是后来新建的
- 模型类
- 定义模型类,在booktest下的models中定义模型类,其中DetailInfo是BookInfo的外键
from django.db import models # Create your models here. class BookInfo(models.Model): title=models.CharField(max_length=20) pub_date=models.DateField() def __str__(self): return '%d'%self.pk class DetailInfo(models.Model): name=models.CharField(max_length=20) content=models.CharField(max_length=100) people=models.CharField(max_length=20) gender=models.BooleanField(default=True) foreign=models.ForeignKey(BookInfo) def __str__(self): return '%d'%self.pk
- 生成迁移,执行迁移,实际上就是初始化数据库。这就是要在pycharm上的功能栏操作:Tools--->Run manage.py Task...在弹出的输入框中输入makemigrations,生成迁移成功后要执行迁移migrate
- 定义模型类,在booktest下的models中定义模型类,其中DetailInfo是BookInfo的外键
- 注册admin
- 创建超级管理员。在上一步打开的Task面板中输入createsuperuser,就可以创建超级管理员。
- 注册模型类,在booktest中添加如下代码
from django.contrib import admin from .models import BookInfo,DetailInfo # Register your models here. class BookInfoAdmin(admin.ModelAdmin): list_display = ['id','title','pub_date'] class DetailInfoAdmin(admin.ModelAdmin): list_display = ['id','name','content','people','gender'] admin.site.register(BookInfo,BookInfoAdmin) admin.site.register(DetailInfo,DetailInfoAdmin)
- 在Task中输入runserver启动服务器,在弹出的网址后添加/admin/可以进入后台管理状态。
- 视图
- 在booktest文件夹下的views中定义视图
from django.shortcuts import render from django.http import HttpResponse # Create your views here. from .models import * def index(request): contex={'title':'Django首页','list':range(10)} return render(request,'booktest/index.html',contex) def book(request): list=BookInfo.objects.all() contex={'booklist':list,'title':'BookList'} return render(request,'booktest/book.html',contex) def detail(request,id): list=BookInfo.objects.get(id=id).detailinfo_set.all() contex={'listdetail':list,'title':'Detail'} return render(request,'booktest/detail.html',contex)
- 在tenplates文件夹下新建booktest文件夹,在文件夹下新建views中的几个html文件
- booh.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>Book</h1> <a href="/index/">index</a> <hr> <ul> {% for foo in booklist %} <li> <a href="/{{ foo.id }}" >{{ foo.title }} </a> </li> {% endfor %} </ul> </body> </html>
- index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <h1>Hello World!</h1> <hr> <a href="/book/">BookList</a> <hr> {% for foo in list %} <h1> {{ foo }} </h1> {% endfor %} </body> </html>
- detail.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> <ul> {% for foo in listdetail %} {{ foo.name }} {% endfor %} </ul> </body> </html>
- booh.html
- 配置url
- 在项目文件夹Web_server下的urls.py下添加如下代码
from django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url('^',include('booktest.urls')), ]
- 在booktest文件夹下新建urls.py,添加如下代码
from django.conf.urls import url from . import views urlpatterns = [ url('^index/$',views.index), url('^detail/$',views.detail), url('^book/$',views.book), url('^(\d+)/$',views.detail) ]
- 在项目文件夹Web_server下的urls.py下添加如下代码
- 在booktest文件夹下的views中定义视图
最终的项目录是这样的
项目文件比较简单,没有实现具体的功能,因为刚开始学,能够搭建好这么一个框架已经很费力了。
转载于:https://www.cnblogs.com/ruiqingliu/p/7251520.html