Django学习随记 Virtualenv 虚拟环境搭建

阅读: 评论:0

Django学习随记 Virtualenv 虚拟环境搭建

Django学习随记 Virtualenv 虚拟环境搭建

绿色:代表可以自定义的名称

红色:代表命令

紫色:代表运行的文件

pip install     ==安装包命令

pip unistall   ==卸载包命令

 

创建的virtualenv虚拟环境管理(避免背包和包太多而引起的一些不必要错误)

 

【创建“歪球一恩威”】

进入CMD命令行(以管理员身份运行)

C: Users Administrator>  pip install virtualenv (安装命令)

C: Users Administrator> virtualenv testvir   (新建“歪球一恩威”,testvir是环境名称(目录),这里要注意这个命令是以当前路径创建)

【进入“歪球一恩威”环境】

C: Users Administrator> cd testvir (进入testvir目录)

C: Users Administrator> testvir> dir  (查看目录文件)

C: Users Administrator> testvir> cd Scripts (进入脚本目录)

C:UsersAdministrator>testvir>Scripts> dir (查看目录文件)

C:UsersAdministrator>testvir>Scripts> activate.bat (进入虚拟环境)

(tesstvir)C:UsersAdministrator>testvir>Scripts>    (前面多了个括号表示已经进入虚拟环境)

(tesstvir)C:UsersAdministrator>testvir>Scripts> pip list  (查看已经安装的库)

(tesstvir)C:UsersAdministrator>testvir>Scripts> deactivate.bat  (退出当前虚拟环境)

 

【虚拟环境管理器(属于另外一个包)】

C:UsersAdministratortestvirScripts>pip install virtualenvwrapper-win (安装管理器,win平台需要-win,linux不需要加-x)

C:UsersAdministratortestvirScripts>mkvirtualenv testvir2 (创建虚拟环境testvir2)

(testvir2)C:UsersAdministratortestvirScripts>   (创建成功并进入了testvir2虚拟环境)

(testvir2)C:UsersAdministratortestvirScripts> deactivate (退出当前虚拟环境)

【管理虚拟环境】

C:UsersAdministratortestvirScripts> workon (查看虚拟环境)

C:UsersAdministratortestvirScripts> workon testvir2 (进入testvir2虚拟环境)

(testvir2) C:UsersAdministratortestvirScripts>  (已经进入虚拟环境)

(testvir2) C:UsersAdministratortestvirScripts> deactivate (退出当前虚拟环境)

 

【pycharm设置项目】

创建Django (创建Django前请在)

项目目录:C:UsersAdministratorPycharmProjectsuntitled (重要:命名不要以django或者内置的命令重复命名Django项目名称为untitled )

解释器目录:C:UsersAdministratorEnvstestvir2  (注意Envs里面的)

 

 

【pycharm之app文件创建】

pycharm 依次点击菜单栏 Tools >>> Run manage.py Task >>> (进入django命令行)

manage.py@untitled> startapp message [destination]  (回车键创建一个message的app应用)

创建完成后项目中会有message文件夹,里面包含了必要的py文件

 

创建文件夹用于储存js和css等,直接在项目下新建文件夹static、log、media

static   储存js、css等

log    储存日志文件

media  储存用户上传的文件

因为网站可能会涉及到很多的app应用文件,所以我们建立一个apps文件夹来存放各个app项目文件,并把刚才的message文件夹拖放到apps文件夹内

假果我们需要调用apps内的message文件夹内的文件时,一般我们需要 ssage import views(显然这样导入会比较麻烦)

 

所以我们可以直接用pycharm将文件夹设置成为根目录索引

右键单击文件夹 >> Mark directory as >> Sources root (设置后导入就可以直接用)form message import views

这样设置是基于pycharm的,在命令行执行时会报错;所以我们还需要在项目文件夹中的settings.py文件内导入message文件夹才可以。

 

【导入html文件】

templates文件夹主用于储存html静态文件

 

【数据库配置】

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

    }

 

配置更改为MYSQL的数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.sql',
        'NAME': "testdjango",
        'USER':"root",
        'PASSWORD':"",
        'HOST':"127.0.0.1"
    }

}

修改后需要重新生成一下配置

 

pycharm 依次点击菜单栏 Tools >>> Run manage.py Task >>> (创建django的数据表)

(可能会出现没有安装mysqldb驱动引起的错误,进入虚拟环境中pip install mysql-python即可,安装mysql时也有可能出现没有c++之类的错误,详细解决方案可参考:)

下载好驱动之后直接 CMD  CD 目录/.... >pip install whl

 

pycharm 依次点击菜单栏 Tools >>> Run manage.py Task >>> (创建django的默认数据表)

manage.py@untitled> migrate [appname]  (回车键创建一个message的app应用)

稍等一下django就自动创建好默认的数据表了

 

【url配置】

urls.py文件  

填写对应的url配置如:url(r'^admin/', admin.site.urls),   # 对应的正则,指向的页面

from message.views import getform  (同时记得在url配置的上面导入app函数)

url(r'^form/$',getform)  # 这是我们配置的url映射到getform函数

 

相对的在app应用的views.py中写入逻辑函数

def getform(request):

    return render(request,'message_form.html')  # 返回一个request对象,html文件名称

 

填写好后即可在浏览器中输入地址测试是否生效

127.0.0.1:8000/form

如果未出现html页面,请检查 settings.py 配置文件中的 DIRS 是否为相对路径(下面的已经为相对路径)

TEMPLATES = [{'BACKEND': &#plate.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')]  # 路径(根目录,文件夹),'APP_DIRS': True,'OPTIONS': {'context_processors': [&#t_processors.debug',&#quest',&#t_processors.auth',&#ssages',],},},
]

 

访问后可能还会出现无法加载CSS文件,但是浏览器开发模式地址是正确的却显示404,这个问题涉及到django的静态文件配置

如果有html文件但未出现css文件,请检查 settings.py 配置文件中的 STATIC_URL 是否为相对路径(下面的已经为相对路径)

新增STATICFILES_DIRS常量

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static') # 路径(根目录,文件夹)
]

BASE_DIR是Django内置的根目录路径

 

 

 

 

【写入数据库表操作】

message/migratinos/models.py

class UserMessage(models.Model):name = models.CharField(max_length=20, verbose_name=u"用户名")email = models.EmailField(verbose_name=u"邮箱")address = models.CharField(max_length=100,verbose_name=u"联系地址")message = models.CharField(max_length=500,verbose_name=u"留言信息")class Mata:verbose_name = u"用户留言信息"

 

 pycharm 依次点击菜单栏 Tools >>> Run manage.py Task 

 

manage.py@untitled> makemigrations message [appname] (直接运行会报错如下)

No changes detected in app 'messages'     (这是因为还没有在项目settings.py内注册app)

Process finished with exit code 0

 (注册步骤如下):

INSTALLED_APPS = [&#ib.admin',&#ib.auth',&#ib.contenttypes',&#ib.sessions',&#ib.messages',&#ib.staticfiles','message', # 新增message即可注册
]

另外因为涉及到中文字符,所以需要头部定义成为utf-8编码(app的models.py文件)

 

manage.py@untitled> makemigrations message [appname] (运行出现以下信息已经创建了模型(model UserMessage))

(既:刚才在models.py里面创建的UserMessage类)

Migrations for 'message':
  0001_initial.py:
    - Create model UserMessage

Following files were affected 

然后继续

manage.py@untitled> migrate message [appname]  (创建数据表,如果成功则显示以下信息)

Operations to perform:
  Apply all migrations: message
Running migrations:
  Rendering DONE
  Applying message. OK

Process finished with exit code 0

这样我们在数据库中查看时就多出了一个 message_usermessage 数据表

 

【model的数据类型】

models.ForeignKey           # 外键类型
models.DateTimeField      # 时间类型
models.IntegerField          # 整型
models.IPAddressField      # IP地址类型
models.FileField                # 上传文件用到的类型
models.ImageField           # 图片类型

.......

(查看数据类型还可以Ctrl键+鼠标左键点击models (查看数据类型)>>>  field (查看Django默认类型) )

 

我们还可以设置字段的各种定义:

class UserMessage(models.Model):object_id = models.CharField(max_length=50,default="",primary_key=True,verbose_name=u"主键")  # 设置主键,默认Django已经自动创建ID作为主键name = models.CharField(max_length=20, null=True,blank=True,default='',verbose_name=u"用户名") # 允许为空,default设置默认值email = models.EmailField(verbose_name=u"邮箱")address = models.CharField(max_length=100,verbose_name=u"联系地址")message = models.CharField(max_length=500,verbose_name=u"留言信息")class Mata:verbose_name = u"用户留言信息"

修改数据模型后重新运行一下

pycharm 依次点击菜单栏 Tools >>> Run manage.py Task 

manage.py@untitled> makemigrations message [appname] 

Migrations for 'message':
  0002_auto_20180715_1630.py:
    - Remove field id from usermessage
    - Add field object_id to usermessage

    - Alter field name on usermessage

(告诉我们修改了哪些信息)

manage.py@untitled>  迁移  消息 [appname] 

要执行的操作:
  应用所有迁移:消息正在
运行迁移:
  呈现模型状态... DONE
  应用message.0002_auto_20180715_1630 ...确定
 

(告诉我们操作成功)

 

    class Mata:verbose_name = u"用户留言信息"verbose_name_plural = verbose_name    # 复述信息,不指定名称会在后台显示后面加S,所以我们直接调用verbose_name避免db_table = "user_message"  # 设置表名ordering = "-object_id"  # 排列方式(-倒序)

下一篇:Django的数据库增加改查

本文发布于:2024-02-02 13:08:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170685048244007.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:环境   Django   Virtualenv
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23