赞
踩
最近在学习Django框架,目的是了解前后端开发和运行中的交互细节。目前还是新手~
首先linux安装python3,一般都自带了
通过pip3安装虚拟环境,在虚拟环境下开发的好处是不同的项目可能需要不同版本的 python和依赖环境,都装到一起经常会导致问题,所以需要隔离环境:
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
创建虚拟环境:mkvirtualenv -p /usr/bin/python3 envname #envname为自定义的项目名称
如果提示找不到 mkvirtualenv 命令,需配置环境变量:
- 1.创建目录用来存放虚拟环境
- mkdir $HOME/.virtualenvs
- 2.打开~/.bashrc文件,添加两行代码
- export WORKON_HOME=$HOME/.virtualenvs
- source /usr/local/bin/virtualenvwrapper.sh
- #如果还是提示找不到mkvirtualenv命令,可能是virtualenvwrapper.sh文件路径不对,用which找出路径
- #which virtualenvwrapper.sh
- #用找出的路径替换source /usr/local/bin/virtualenvwrapper.sh中的路径
- 3.运行
- source ~/.bashrc
虚拟环境常用命令:
- 查看当前有哪些虚拟环境:workon
- 进入虚拟环境: workon envname #envname为虚拟环境项目名称
- 退出虚拟环境:deactivate
- 删除虚拟环境:rmvirtualenv envname
- 安装django:pip3 install django
- 安装验证码库:pip3 install django-simple-captcha
- pip3 install pytz
- 查看python安装库:pip3 list
这里举一个案例,例如创建一个博客项目blog,它的其中一个子应用为login登录模块。
创建虚拟环境:mkvirtualenv -p /usr/bin/python3 blog
进入虚拟环境:workon blog
创建一个django项目:django-admin startproject blog
此时项目目录结构如下:
设置允许任何ip访问以及语言和时区,修改blog/blog/settings.py:
- # 对应的字段改为如下
- ALLOWED_HOSTS = ['*']
- LANGUAGE_CODE = 'zh-Hans'
- TIME_ZONE = 'Asia/Shanghai'
如果在本地虚拟机开发需要查看防火墙是否开放了指定端口,比如本次使用8000端口;若是在云服务器上开发则需要在防火墙界面新增8000端口,否则访问不了,例如腾讯云:
启动django服务:python manage.py runserver 0.0.0.0:8000
第一次执行可能会报错,执行它提示的命令:python manage.py migrate
成功后再次启动django:python manage.py runserver 0.0.0.0:8000
在/blog目录下有一个manage.py文件,在这里创建一个应用:
python manage.py startapp login # login为应用名
目录结构如下:
在/blog/blog目录下修改settings.py注册login应用:
- # Application definition
-
- INSTALLED_APPS = [
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'login', # 注册登录应用
- ]
在/blog/blog目录下urls.py总路由增加login路径:
- from django.contrib import admin
- from django.urls import include, path # 别忘了这里导入 include
-
- urlpatterns = [
- path('admin/', admin.site.urls),
- path('login/', include('login.urls')), # 增加login路由
- ]
在/blog/login目录下新增urls.py文件(这一步其实可以优化):
- from django.urls import path
- from . import views
- # 增加view的index路由
- urlpatterns = [
- path('', views.index, name='index'),
- ]
在/blog/login目录下修改views.py:
- from django.shortcuts import render
-
- # Create your views here.
-
- from django.http import HttpResponse
-
- def index(request):
- return HttpResponse(u"欢迎!")
此时浏览器打开http://127.0.0.1:8000/login/ 可以看到返回,由于没有写前端html显示比较简单。在本地开发就是127.0.0.1,在云上开发就是云的公网ip
创建一个超级管理员登录后台管理用户
创建默认用户模型:python manage.py makemigrations
创建默认的表:python manage.py migrate
创建超级管理员:python manage.py createsuperuser #会让你输入管理员账号密码
此时可在浏览器打开:http://127.0.0.1:8000/admin/ 登录超管,操作用户表
创建完成后数据库相关的大概目录如下:
其他数据库操作
重置整个数据库,删除所有数据库:python manage.py flush
重置应用程序数据库表,不删数据库:
1. python manage.py migrate login zero #login为app名字
2.删除app目录下的migrations文件夹
3.python manage.py makemigrations login
4.python manage.py migrate login
简单的django搭建和运行流程就是这样,后面再慢慢开发和研究~
学了几天目前做完简单的登录、注册、验证、退出的功能,大概是这样:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。