在Linux环境下从零开始搭建django框架

  1. 整体步骤如下:** 安装虚拟机和linux系统 --> 安装python3和pip工具 --> 安装虚拟环境 --> 在虚拟环境中安装django --> 使用django-admin创建项目 --> 使用manange.py启动和管理项目 --> 定义视图和url访问规则.

  2. 下载虚拟机. 基于系统下载正确的虚拟机. 笔者系统是windows10, 下载的是vmware15 (http://forspeed.onlinedown.net/down/newdown/4/26/VMwareworkstation.rar). 下载linux系统,笔者使用的是RHEL7. 先安装好vmware虚拟机,再创建虚拟机并安装RHEL7 linux 系统.请保证网络连通.

  3. 安装python3和pip
    下载python3安装包,并安装.大致步骤为(configure --> make --> make test --> make install) 最后使用sudo权限或root用户安装,这样就不用考虑python3的路径问题. 安装过程中可能会出现缺gcc compiler. 可使用yum将缺的包都安装上.

  4. 安装pip工具
    #curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 获取get-pip.py脚本用来安装pip
    #python3 get-pip.py -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com 使用aliyun的源,否则会非常慢,导致连接超时.

  5. 搭建虚拟环境, 在虚拟环境中运行的好处是可以与其他项目分开.
    #pip install virtualenv -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com #先安装virtualenv工具 使用阿里云的镜像,否则下载太慢
    #mkdir django
    #mkdir webproject
    #virtualenv venv #创建虚拟环境 linux环境下会创建一个venv文件夹, venv可以改成其他名字
    #cd venv/bin
    #source activate #进入虚拟环境
    (venv) [root@localhost bin]#

  6. 在虚拟环境中安装dijango
    (venv) [root@localhost bin]# pip install django==2.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

  7. 进入虚拟环境, 切换到webproject 文件夹,创建demo project,并runserver.
    #cd webproject
    #django-admin startproject demo
    在demo文件夹下有如下文件:
    setting.py 全局配置文件
    urls.py 路由文件
    wsgi.py 是服务器和框架间的桥梁
    manage.py是入口文件
    #cd demo
    #python3 manage.py runserver [端口号] #server 已经启动 可以指定端口号,默认端口号8000. 可以创建不同的webproject,运行在不同的端口.
    有时候可能会出现No module named _sqlite3的错误,此时需要重新安装yum install sqlite3-devel包,并重新安装python3. 正常情况下,你可以在浏览器中输入127.0.0.1:8000登录网页了.

  8. 让server在后台运行,关闭shell依然有效
    nohup python manage.py runserver 0.0.0.0:8000 >djo.out 2>&1 &

  9. 数据迁移,创建超级用户管理后台
    在cmd中ctrl+C退出服务器.
    执行数据迁移
    #python manage.py migrate
    创建超级管理员
    #python manage.py createsuperuser
    输入密码

  10. 安装mariadb,并启动mariadb服务.修改root用户密码, 先删除空用户
    mariadb安装后,使用mysql -u root -p 登录后修改密码.
    mysql> set password for ‘root’@‘localhost’ = password(‘gnzzh12345’);
    mysql> create database demo default character set utf8;
    安装python的数据库驱动模块
    #pip install pymysql -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
    可以在虚拟环境安装,也可以在真实环境安装.
    并修改demo/文件夹下的__init__.py文件.加上下面语句
    import pymysql
    pymysql.install_as_MySQLdb()

  11. 创建app
    #python manage.py startapp app1
    会创建app1文件夹
    app1文件夹下有
    admin.py 管理后台
    apps.py 配置应用
    models.py
    记得将aap1添加到setting.py配置文件
    INSTALLED_APPS = [

    ‘app1’,
    ]
    如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)

  12. 在app1中添加数据模型并修改数据库选项
    ORM object 对象 关系 映射
    先在demo文件夹下的setting.py 中修改DATABASE选项.修改
    DATABASES = {
    ‘default’: {
    ‘ENGINE’: ‘django.db.backends.mysql’, #modify to mysql
    ‘NAME’: ‘demo’,
    ‘USER’: ‘root’,
    ‘PASSWORD’:‘gnzzh12345’
    }
    }

    在app1文件夹下的models.py文件中创建数据模型, 创建person和order两张表.
    class CreateUpdate(models.Model):
    create_at = models.DataTimeField(auto_now=True)
    update_at = models.DataTimeField(auto_now=True)
    class Meta:
    abstract=True

    class Person(CreateUpdate):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

    class Order(CreateUpdate):
    order_id = models.CharField(max_length=30)
    order_desc = models.CharField(max_length=120)

  13. 创建表,现在就可以在django中创建表了.
    切换到demo文件夹, 执行#python3 manage.py makemigrations #生成迁移文件
    #python3 manage.py migrate #在demo中创建person和order表,
    在app1目录下的admin.py文件中添加如下内容:
    from app1.models import Person, Order
    class PersonAdmin(admin.ModelAdmin):
    list_display = (‘first_name’, ‘last_name’)
    list_filter = (‘first_name’, ‘last_name’)
    search_filed = (‘first_name’)
    admin.site.register(Person, PersonAdmin)
    启动runserver,就通过http://127.0.0.1:8000/admin管理后台了.

  14. 创建视图, 即创建可访问的页面
    在app1文件夹中修改views.py 文件. 注意要导入httpresponse
    from django.shortcuts import render
    from django.http import HttpResponse
    def index(request):
    return HttpResponse(‘Welcome to my site’)
    第一行引入HttpResponse,它是用来向网页返回内容的,就像Python中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。我们定义了一个index()函数,第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含get或post的内容,用户浏览器,系统等信息在里面。函数返回了一个 HttpResponse 对象,可以经过一些处理,最终显示几个字到网页上。
    定义视图函数相关的URL(网址) , 在demo文件夹下的urls.py文件中进行修改.
    要先导入app1下的view模块,否则找不到对应的视图
    from app1 import views as app1_views
    urlpatterns = [
    path(‘admin/’, admin.site.urls),
    path(“index”, app1.views.index) #app1
    ]
    现在你就可以通过http://127.0.0.1:8000/index来访问网页了.

以上步骤可以帮助你搭建django的基本框架结构,想要设计合格的django项目.还需进一步学习.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值