Django基础学习(第一周)


Django简介:

Django是一个开放源代码的web应用框架,它是一个基于M(Model)V(View)C(Controller)构造的框架,但是Django更关注的是M(Model)V(View)T(Templates),即模型,视图,模板。模型(Model)就是用来与数据库打交道,处理与数据相关的所有事务,模型中定义的一个类,相当于数据库中的一张数据表,类中定义的不同的属性,对应的是这张数据表中相应的字段。视图(View)是用来处理业务逻辑的,展示那些数据,怎么展示这些数据,都由视图函数来控制。模板(Templates)就是用来展示数据的HTML页面,是展示给用户看的页面。
————————————————————————————————————
MVC
大部分开发语言中都有MVC框架
MVC框架的核心思想是:解耦
降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
m表示model,主要用于对数据库层的封装
v表示view,用于向用户展示结果
c表示controller,是核心,用于处理请求、获取数据、返回结果

MVT
Django是一款python的web开发框架
与MVC有所不同,属于MVT框架
m表示model,负责与数据库交互
v表示view,是核心,负责接收请求、获取数据、返回结果
t表示template,负责呈现内容到浏览器
——————————————————————————————————

1.先安装django

 pip install django==2.2.9

补充:如何把本地计算机的pip下载换成豆瓣镜像下载(默认为国外下载,下载速度较慢)

使用命令方式:

1)先打开git bush或者计算机终端,查看是否有一个.pip的文件。

cd ~
ls -a | grep .pip

2)如果没有就创建一个.pip的文件

mkdir .pip

3)再cd .pip中创建一个pip.conf的文件(直接用vim,没有这个文件就会创建)

vim pip.conf

4)在pip.conf文件中加入以下代码就可以了。

[global]
index-url=https://pypi.doubanio.com/simple
直接创建方式:

打开C盘—> 用户—> Administrator —>创建.pip文件夹—> 进入.pip文件中创建一个pip.ini的文件(注意:这里的pip.ini可能有后缀.txt,要把.txt去掉)。

2.创建django项目并把它push到服务器上(做到版本控制,也可以直接克隆项目)

1)创建django项目并新建仓库

django-admin startproject djangocase
 cd djangocase
git init

上传时有些文件没有必要传,所以可以先创建一个.gitignore的文件,把不必上传的文件放里面

 vim .gitignore

注:这里不需要的文件可以用这个网站直接生成(http://gitignore.io/
,在网站里直接选择自己所用的工具),再加上venv和.idea就可以了

2)创建一个依赖项清单(把基本的依赖项写进去)

vim requirements.txt

3)上传项目到服务器

git add .
git status
git commit -m '项目的初始版本'
git tag v0.1
git log
git remote add origin [email protected]:lxh5200/djangocase.git
git push -u origin master
注:服务器的仓库可以使用码云(https://gitee.com/)或者GitHub(https://github.com/)这里使用码云(国内的速度较快)

3.用Pycharm来运行和实现已经创建的django项目

1)打开pycharm并使用git把服务器上的django项目克隆下来(克隆前先把前面创建在本地的项目删除,在工作中大部分是使用这种方法来继续进行项目)

 ~ 使用PyCharm的"get from version control"
 ~ git clone gitgitee.com:lxh5200/djangocase.git

2)创建虚拟环境

 ~ Linux/macOS: source venv/bin/activate
 ~ Windows: "venv/Scripts/activate

3)重建依赖项

pip install -r requirements.txt

4.创建一个Django的APP运用

python manage.py startapp carsearch

startapp 目录在项目的根目录中创建一个新目录,这个目录名为carsearch,其中包含一些python脚本:
❏ init.py:一个空 Python 脚本,存在的目的是告诉 Python 解释器,这个目录是一个Python 包;
❏ admin.py:注册模型,让 Django 为你创建管理界面;
❏ apps.py:当前应用的配置;
❏ models.py:存放应用的数据模型,即数据的实体及其之间的关系;
❏ tests.py:存放测试应用代码的函数;
❏ views.py:存放处理请求并返回响应的函数;
❏ migrations 目录:存放与模型有关的数据库信息。
views.py 和 models.py 是任何应用中都有的两个文件,是 Django 所采用的设计模式(即“模型-视图-模板”模式)的主要部分。
1、在动手创建模型和视图之前,必须告诉 Django 项目这个新应用的存在。为此,要修改项目配置目录中的 settings.py 文件。打开那个文件,找到 INSTALLED_APPS 列表,把 carsearch添加到末尾:


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

为了方便使用,我们还可以配置应用文件设置语言时区:
找到settings.py 文件找到以下代码并修改:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

2、再在文件主目录下创建一个static的静态资源文件夹,把所需的静态资源放里面,在static下创建manages(静态图片),css,js。再在settings.py 文件中最后添加以下代码:

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
STATIC_URL = '/static/'

这样我们django项目的MVT中的m(models.py)和v(views.py)就有了,就差T了。我们在djangocase根目录下创建一个templates的文件夹,在里面创建模板页index.html。
3、再回到应用目录,修改views.py文件。


def search(request):
    """查询"""
    context = {
        'searched': False,
        'current_page': 1,
        'total_page': 0
    }
    if request.method == 'POST':
        carno = request.POST.get('carno', '')
        carno = carno.replace(' ', '').upper()
        context['carno'] = carno
        page = int(request.POST.get('page', '1'))
        size = int(request.POST.get('size', '5'))
        if carno:
            context['searched'] = True
            queryset = Record.objects.filter(
                Q(car__carno__startswith=carno) |
                Q(car__owner__contains=carno)
            ).select_related('car').order_by('-offend_time')
            paginator = Paginator(queryset, size)
            context['total_page'] = paginator.num_pages
            context['page_obj'] = paginator.get_page(page)
    return render(request, 'index.html', context)

说明:Django框架通过shortcuts模块的便捷函数render简化了渲染模板的操作,有了这个函数,就不用先创建Template对象再去调用render方法。
到此为止,我们还没有办法让views.py中的render函数找到模板文件index.html,为此我们需要修改settings.py文件,配置模板文件所在的路径。
4、切换到项目目录修改settings.py文件。

# 此处省略上面的内容

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# 此处省略下面的内容

5、创建一个管理员用户
首先,我们需要创建一个用户来登录管理站点。使用下面的命令:

python manage.py createsuperuser

输入你想要的用户名
Username: admin
输入邮箱地址
Email address: [email protected]
最后输入你的密码两次。
Password: **********
Password (again): *********
Superuser created successfully.
6、 数据库迁移

python manage.py makemigrations # 根据models变化生成迁移文件
python manage.py migrate # 将变更记录同步到数据库

7、开启开发服务器
django管理站点会自动启动,我们只要启动开发服务器就可以来一起探索它了。

python manage.py runserver

现在打开一个浏览器,并且去/admin/-例如http://127.0.0.1:8000/admin/你应该会看到Django administration的登录界面。

进入admin管理站点。
这样一个简单的django小项目就建好了。

补充:创建并运行Django项目的方法:
第一种方式:
  1. django-admin startproject django1906
  2. 使用PyCharm打开项目并创建虚拟环境
  3. 安装项目所需依赖项
  4. 运行项目
    ~ python manage.py runserver
    ~ Add Configuration --> + --> Python
    --> Script Path (manage.py)
    --> Parameters (runserver)
第二种方式:
  1. 用PyCharm创建一个普通的Python项目
  2. 安装Django所需的依赖项
    ~ pip install django==2.1.14
  3. 把Python项目变成Django项目
    ~ django-admin startproject django1906 .
  4. 运行项目
第三种方式:
  1. 克隆项目到本地
    ~ 使用PyCharm的"get from version control"
    ~ git clone [email protected]:jackfrued/django1906.git
  2. 创建虚拟环境
    ~ Linux/macOS: source venv/bin/activate
    ~ Windows: "venv/Scripts/activate"
  3. 重建依赖项
    ~ pip install -r requirements.txt

你可能感兴趣的:(Django基础学习(第一周))