django项目基本配置

创建一个django项目:django-admin startproject mysite

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

其中最外成mysite是你的项目名称,你可以更改。但是内部的mysite不能更改名称。因为它已经被视为一个Python包来使用了(由于__init__.py的存在,他会被识别为一个Python包)。

manage.py 用来管理Python项目的命令行工具

__init__.py 一个空文件,表明它所在的文件夹是一个Python包,不再是文件夹。

settings.py 项目配置文件,如果你要使用数据库,或者静态文件,模板文件,都需要在里面配置使用。

urls.py url声明,相当于网站的目录。

wsgi.py 作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

运行项目:python manage.py runserver

创建项目: python manage.py startapp pools

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

编写视图函数:views.py

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

然后在pools中创建一个urls.py 输入:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
然后在mysite下面的urls.py中输入:
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

这样的话,每个项目都有自己独立的url管理文件。不用担心mysite文件夹下的urls配置过多,而且不容易区分是哪个项目的url

也可以全部在mysite里面配置,但是如果项目过多,会不好管理。name属性是为了方便在模板中引用。

然后如果要使用数据库,进入到mysite下的settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库类型,用mysql就是backends.mysql
        'NAME': 'mydatabase',                  # 要使用的数据库名称
        'USER': 'mydatabaseuser',              # 用户名
        'PASSWORD': 'mypassword',              # 密码
        'HOST': '127.0.0.1',                   # 数据库地址(ip)
        'PORT': '5432',                        # 数据库使用端口
    }
}

然后运行命令:python manage.py migtate     # 这条命令会在数据库里面给你自动创建一些供你使用的表。至于它会创建哪些表,它会找到settings.py文件中的INSTALLED_APPS :

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

然后使用django来创建模型,这里会用到models文件:

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

每个模型都被表示为django.db.models.Model的子类。定义的变量表示数据库里面需要生成的字段。每个字段的实例类型不一样,CharField 表示字符串类型,IntergerField表示整数类型, DateTimeField表示日期时间,TextField表示文本类型,FloatField表示浮点类型,AutoField表示自增类型,一般用于生成id,ForeignKey表示外键。由于类型不一样,所以需要不同的参数,常见的参数有:max_length=最大长度,primary_key=True/False是否为主键,null=是否允许为空。

然后模型完成后还需要在settings.py 中配置一下你的项目。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pools'
]

然后运行命令:python manage.py makemigrations polls  # 这个命令会使得Python检测你的models文件的修改,并准备一次迁移。然后运行:python manage.py migrate   # 这个命令会往你数据库中插入字段。模板操作完成。(如果你修改了models.py中的字段名称,可以删除项目的migrations文件夹下的py文件,否则可能会有命名冲突)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值