天天看点

django搭建web服务器

注:(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框架的步骤

  1. 创建django项目,并创建app(windows下安装django框架命令:pip install django),第二张图是创建之后的目录,其中booktest中的urls是后来新建的
    django搭建web服务器
    django搭建web服务器
  2.  模型类
    1. 定义模型类,在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      
    2. 生成迁移,执行迁移,实际上就是初始化数据库。这就是要在pycharm上的功能栏操作:Tools--->Run manage.py Task...在弹出的输入框中输入makemigrations,生成迁移成功后要执行迁移migrate
  3. 注册admin
    1. 创建超级管理员。在上一步打开的Task面板中输入createsuperuser,就可以创建超级管理员。
    2. 注册模型类,在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)      
    3. 在Task中输入runserver启动服务器,在弹出的网址后添加/admin/可以进入后台管理状态。
  4. 视图
    1. 在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)      
    2. 在tenplates文件夹下新建booktest文件夹,在文件夹下新建views中的几个html文件
      1. 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>      
      2. 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>      
      3. 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>      
    3. 配置url
      1. 在项目文件夹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')),
        ]      
      2. 在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)
        ]      

 最终的项目录是这样的

django搭建web服务器

项目文件比较简单,没有实现具体的功能,因为刚开始学,能够搭建好这么一个框架已经很费力了。

转载于:https://www.cnblogs.com/ruiqingliu/p/7251520.html