django (一) 环境的配置及Django文件简介
1, 创建虚拟环境(virtualenv 和virtualenvwrapper)
1.1, virtualenv的概述
virtualenv是用来创建Python的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的Python虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
虚拟环境有什么意义?
比如: 我们要同时开发多个应用程序,应用A需要Django1.11,而应用B需要Django1.8怎么办, 这种情况下,每个应用可能需要各自拥有一套独立的Python运行环境,virtualenv就可以用来为每一个应用创建一套'隔离'的Python运行环境。
1.2, 安装pip
【请使用普通用户】
a. 查看pip版本
查看pip版本: pip -V
查看pip3版本: pip3 -V
b. 安装pip(如果存在则不需要安装)
安装pip3: apt install python3-pip
安装pip2: apt install python-pip
c. 更新pip
更新pip (如果pip版本高于9.0则不需要更新):
更新pip3: pip3 install --upgrade pip
更新pip: pip install --upgrade pip
注意: 更新后如出现以下错误(这是pip 10.0.0版本的BUG):
Traceback (most recent call last):
File “/usr/bin/pip”, line 9, in
from pip import main
解决方法:修改对应pip文件中的代码(pip和pip3类似)
例如更新pip时报错则需要修改 /usr/bin/pip 文件中的代码,
使用: sudo vim /usr/bin/pip 打开pip文件
将:
from pip import main
if __name__ == '__main__':
sys.exit(main())
改成:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
d. 让pip默认使用python3, 执行命令:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
e. pip命令
pip install xxx:安装xxx依赖包
pip list:查看所有依赖包
pip freeze:查看新安装的包
pip uninstall xxx :卸载xxx包
1.3, virtualenv和virtualenvwrapper 的安装和使用
【请使用普通用户】
a. 安装虚拟环境
sudo apt update
sudo pip3 install virtualenv virtualenvwrapper
安装后如果不能使用虚拟环境命令,则需要配置环境变量
1, 进入家目录: cd ~
2, 使用vim打开.bashrc, 定位到最后:shift+g,并添加以下2行代码(注意修改自己Ubuntu的用户名)
export WORKON_HOME=/home/自己Ubuntu的用户名/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
3, 在家目录创建.virtualenvs目录: mkdir .virtualenvs
4, 加载修改后的设置,使之生效:source .bashrc
(如果找不到virtualenvwrapper.sh,
则将路径改成/usr/local/bin/virtualenvwrapper.sh
然后重试 )
b. 创建虚拟环境:
mkvirtualenv env
mkvirtualenv env2 -p /usr/bin/python3 (指定python路径)
c. 退出虚拟环境
deactivate
d. 进入虚拟环境:
workon 虚拟环境名称
安装django
pip install django==1.11(==1.11是指定版本, 如不写则会安装最新版本)
测试Django是否安装成功
进入python环境
import django
django.get_version()
创建一个Django项目
进入到指定要存放项目的目录,执行 django-admin startproject xxx 来创建一个名字为xxx的工程
查看默认目录结构:
manage.py:
是Django用于管理本项目的命令行工具,之后进行站点运行,数据库自动生成等都是通过本文件完成。
HelloDjango/__init__.py:
告诉python该目录是一个python包,暂无内容,后期一些工具的初始化可能会用到
HelloDjango/settings.py:
Django项目的配置文件,默认状态其中定义了本项目引用的组件,项目名,数据库,静态资源等。
HelloDjango/urls.py:
维护项目的URL路由映射,即定义当客户端访问时由哪个模块进行响应。
HelloDjango/wsgi.py:
定义WSGI的接口信息,主要用于服务器集成,通常本文件生成后无需改动。
测试服务器的启动
python manage.py runserver [ip:port]
可以直接进行服务运行 默认执行起来的端口是8000
也可以自己指定ip和端口:
监听机器所有可用 ip (电脑可能有多个内网ip或多个外网ip):python manage.py runserver 0.0.0.0:8000
如果是外网或者局域网电脑上可以用其它电脑查看开发服务器,访问对应的 ip加端口,比如 10.36.132.2:8000
浏览器访问:http://localhost:8000 可以看到服务器启动成功
数据迁移迁移的概念:就是将模型映射到数据库的过程
生成迁移:python manage.py makemigrations
执行迁移:python manage.py migrate
创建应用python manage.py startapp XXX创建名称为XXX的应用使用应用前需要将应用配置到项目中,在settings.py中将应用加入到INSTALLED_APPS选项中
应用目录介绍:
__init__.py:
其中暂无内容,使得app成为一个包
admin.py:
管理站点模型的声明文件,默认为空
apps.py:
应用信息定义文件,在其中生成了AppConfig,该类用于定义应用名等数据
models.py:
添加模型层数据类文件
views.py:
定义URL相应函数(路由规则)
migrations包:
自动生成,生成迁移文件的
tests.py:
测试代码文件
基本视图
首先我们在views.py中建立一个路由响应函数
from django.http import HttpResponse
def welcome(request):
return HttpResponse('HelloDjango');
接着我们在urls中进行注册
from App import views
url(r'^welcome/',views.welcome)
基于模块化的设计,我们通常会在每个app中定义自己的urls
在项目的urls中将app的urls包含进来
from django.conf.urls import include
url(r'^welcome/',include('App.urls'))
课堂练习:新建一个应用showtime,每次刷新页面显示不同的时间。
基本模板
模板实际上就是我们用HTML写好的页面
创建模板文件夹templates, 在模板文件夹中创建模板文件
在views中去加载渲染模板, 使用render函数: return render(request,'xxx')
定义模型在models.py 中引入modelsfrom django.db import models
创建自己的模型类,但切记要继承自 models.Model
案例驱动: 使用模型定义班级,并在模板上显示班级列表
班级: table : grade
columns:
班级名称 - name
成立时间 - date
女生个数 - girlnum
男生个数 - boynum
是否删除 - is_delete
Admin 后台管理
在admin.py中将model加入后台管理:
admin.site.register(Grade)
创建超级用户:python manage.py createsuperuser
访问admin后台:http://127.0.0.1:8000/admin/
展示班级列表
在views.py文件中编写班级的视图函数:
def grade_list(request):
# 获取班级所有数据
g_list = Grade.objects.all()
return render(request, 'grade/grade_list.html', {'g_list': g_list})
模板文件(html文件):
{% for grade in g_list %}
{{ grade.sname }}
{% endfor %}
配置url
在grade App中新建urls.py文件,输入如下代码:
from django.conf.urls import url
from .views import grade_list
urlpatterns = [
url(r'^grade/$', grade_list),
]
在工程的urls.py文件中添加如下代码:
url(r'^', include('grade.urls')),
columns:
学生姓名 - name
学生性别 - gender
学生年龄 - age
学生简介 - info
是否删除 - is_delete
定义学生类 class Student(models.Model): name = models.CharField(max_length=20) gender = models.BooleanField(default=True) age = models.IntegerField() info = models.CharField(max_length=20) is_delete = models.BooleanField(default=False)
3,学会查看官网: https://docs.djangoproject.com/en/1.11/intro/tutorial01/
django (一) 环境的配置及Django文件简介的更多相关文章
- django之环境变量配置
1.配置python变量环境,C:\Python27\;C:\Python27\Scripts\ 2.配置django变量环境,C:\Python34\Lib\site-packages\Django ...
- djang小项目过程中的小问题 01(django中的configrarion配置、django自带命名规范)
不知道为什么,明明照着做,但是我就会遇到一些错误问题,但是我觉着自己生下来就是解决问题的. ##1. 第一个是在django运行时,没有配置configration, 这个时候我添加一个django ...
- Django---路由、配置和静态文件简介
路由.配置文件.静态文件 一.url配置 二.配置文件 三.静态文件 回到顶部 一.url配置 1.url的配置过程 2.注意点 Django默认url配置风格,实在用户访问的路径后面加 \ 用户在主 ...
- Django框架 (一) 虚拟环境配置及简单使用
虚拟环境 什么是虚拟环境 对真实的python解释器的一个拷贝版本 是事实有效的,可以独立存在运行解释python代码 可以在计算机上拷贝多个虚拟环境 为什么要使用虚拟环境 保证真实环境的纯净性 框架 ...
- django 的mysql数据配置
原地址:http://blog.csdn.net/gamesofsailing/article/details/21465327 在成功安装python-mysql后,开始配置django的mysql ...
- webpack 开发环境与生成环境的 配置
写在前面 最近学习react,之前做vue项目的时候,一直都是拿来主义,浑浑噩噩,感觉不太好,趁学习react的机会,在顺带学习一下webpack.一般配置文件分两份,为开发环境和生成环境.有此区分, ...
- thinkphp5.0环境变量配置
允许使用环境变量配置,并且优先级别比在配置文件中要高,因为在读取配置参数的时候,首先会判断环境变量中是否存在该配置. 在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配 ...
- WIN7环境下配置vscode c++环境
目录 安装vscode 添加中文环境支持 添加c++支持 配置c++环境 安装MinGW 配置MinGW环境变量 配置vscode launch文件配置 task文件配置 可能出现的问题 安装vsco ...
- 配置django的环境实现外部脚本调用django中的模型类
通过导入os模块,os设置django的settings文件,配置好django项目的环境,然后执行django.set_up()使环境生效,然后就可以导入模型类,使用增删改查
随机推荐
- 向sd卡读写数据
/data/data 是本地存储 /storage/ 是外部存储 SD卡存储 <uses-permission android:name="android.permission.WRI ...
- chrome最小字体12px
http://www.mamicode.com/info-detail-512021.html http://www.divcss5.com/wenji/w738.shtml
- Codeforces Round #261 (Div. 2) B. Pashmak and Flowers 水题
题目链接:http://codeforces.com/problemset/problem/459/B 题意: 给出n支花,每支花都有一个漂亮值.挑选最大和最小漂亮值得两支花,问他们的差值为多少,并且 ...
- 字符编码乱码问题(servlet底层 编码大揭秘)
好多初学者会遇到,请求过去的信息内包含中文(一般会是get方式提交过去的请求会出现).好郁闷,这是为什么呢.有下面分析下,说的不好可以吐槽 话说我们能遇到这种编码的问题,归根结底就是这 这 web开 ...
- pycharm常用快捷键和自定义快捷键
默认快捷键 编辑类: Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 类名完成Ctrl + Shift + Enter 语句完成Ctrl + P 参数 ...
- MVC 登录后重定向回最初请求的 URL FormsAuthentication.RedirectFromLoginPage
在传统的Asp.net webForm 中如果使用 Form身份验证.登录后重定向到最初请求的页面只需使用 FormsAuthentication.RedirectFromLoginPage 但在MV ...
- windows install JDK&&JRE
重装系统后,安装的java环境没了,只能重装一下~~~~ 1.下载JDK 2.这里会安装两次,其中第一次为安装 JDK,第二次安装JRE,建议不要将这两个放在同一个文件夹. 3.配置环境变量 用鼠标右 ...
- PHP开发api接口 -- 安全验证 生成签名
转载博客 ————. http://blog.csdn.net/li741350149/article/details/62887524 REST模式中HTTP请求方法(GET,POST,PUT,DE ...
- Volley(一)
为什么使用Volley Android提供了两个HTTP库给开发者来进行实现一个HTTP请求,一个是AndroidHttpClient (从apache HttpClient拓展而来),另一个是Htt ...
- mysql server安装(windows)
1 在 https://dev.mysql.com/downloads/mysql/ 上下载mysql压缩包 2 解压,并把bin目录加入环境变量 3 初始化,完成后会在mysql根目录下生成data ...