开始一个django工程

1,创建工程

cd 到你想创建工程的目录。执行如下命令

   django-admin startproject HelloWorld

创建了工程HelloWorld

查看工程HelloWorld,目录结构如下:

HelloWorld: 项目的容器 
    manage.py: 命令行工具,用于和Django交互 
    HelloWorld/init.py:空文件,告诉python,该目录是一个Python包 
    HelloWorld/setting.py : 对该项目的配置文件 
    HelloWorld/urls.py : 该项目的url声明 
    HelloWorld/wsgi.py : 服务器入口

2,  创建应用

在工程HelloWorld下,创建应用learn

   django-admin startapp learn

或者

python manage.py startapp learn

3   在开发服务器上运行工程 (仅用于开发)

 python manage.py runserver

在本地浏览器中输入http://127.0.0.1:8000,查看HelloWorld 工程的运行页面。

 python manage.py runserver 0.0.0.0:8000

0.0.0.0 表示监控电脑的所有的ip地址,8000 是端口,可自配。

4   uwsgi 运行项目

uwsgi --http :8001 --chdir /path/to/project --home=/path/to/env --module project.wsgi

--home 指定virtualenv 路径,如果没有可以去掉。project.wsgi 指的是 project/wsgi.py 文件

5 使用supervisor

1,  生成 supervisor 默认配置文件,比如我们放在 /etc/supervisord.conf 路径中,root 用户执行

echo_supervisord_conf > /etc/supervisord.conf

2,supervisor.conf 在最底部添加

[program:zqxt]

   command=/path/to/uwsgi --http :8003 --chdir /path/to/zqxt --module zqxt.wsgi

   directory=/path/to/zqxt

   startsecs=0

   stopwaitsecs=0

   autostart=true

   autorestart=true

3.,启动 supervisor

(sudo) supervisord -c /etc/supervisord.conf

4, 启动,停止,或重启 supervisor 管理的某个程序 或 所有程序

(sudo) supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]

5,使用 ini 配置文件来实现上述功能

在项目zqxt 中建/home/tu/zqxt/uwsgi.ini输入如下:

[uwsgi]

   socket = /home/tu/zqxt/zqxt.sock

   chdir = /home/tu/zqxt

   wsgi-file = zqxt/wsgi.py

   touch-reload = /home/tu/zqxt/reload

   processes = 2

   threads = 4

   chmod-socket = 664

   chown-socket = tu:www-data

   vacuum = true

接着修改 supervisor 配置文件中的 command 一行:

command=/path/to/uwsgi --ini /home/tu/zqxt/uwsgi.ini

最后重启zqxt 项目:

   (sudo) supervisorctl -c /etc/supervisord.conf restart zqxt

FAQ:

1,浏览器访问报错

Invalid HTTP_HOST header: ‘192.168.1.111:8000‘. You may need to add ‘192.168.1.111‘ to ALLOWED_HOSTS

解决方法:

在工程setting.py 中更改 ALLOWED_HOSTS = [‘*‘]

2,如何添加应用到工程中

将我们新建的应用(learn)添加到工程的 settings.py 中的 INSTALLED_APPS中,也就是告诉Django有这么一个应用

INSTALLED_APPS = (

    ‘django.contrib.admin‘,

    ‘django.contrib.auth‘,

    ‘django.contrib.contenttypes‘,

    ‘django.contrib.sessions‘,

    ‘django.contrib.messages‘,

    ‘django.contrib.staticfiles‘,

    ‘learn‘,

     )

3,如何更换数据库

django默认使用的数据库是sqlite3,如果你想改成mysql或者其他数据库的话,需要则在project的settings.py文件中修改DATABASES

sqlite 数据库配置

DATABASES = {

‘default‘: {

‘ENGINE‘: ‘django.db.backends.sqlite3‘,

‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
                }
         }

mysql数据库配置

DATABASES = {
                   ‘default‘: {
                  ‘ENGINE‘: ‘django.db.backends.mysql‘,
                  ‘NAME‘: ‘hellodatabase‘,
                  ‘USER‘: ‘zhj‘,
                  ‘PASSWORD‘: ‘12345678‘,
                  ‘HOST‘: ‘127.0.0.1‘,
                  ‘PORT‘: ‘5432‘,
                  }
         }

注:  django默认使用MySQLdb模块连接mysql。但是在python3中没有这个模块只有python2中有这个模块,python3只有pymysql模块,所以我们需要主动修改为pymsql:

  

  在project同名文件下的__init__.py文件中添加如下代码即可

  import pymysql

  pymysql.install_as_MySQLdb()

生成数据库表:

打开终端输入这两条命令:
  1,python manage.py  makemigrations

     2,python manage.py  migrate

  通过python manage.py  makemigrations 找到我们所有的models,然后通过python manage.py  migrate生成数据库表,

4  service supervisor start  启动报错

Starting supervisor: Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting superviso

解决方法:unlink /tmp/supervisor.sock

原因:这个进程可以已经启动了,再启动需要先unlink 以前的。

5,django 运行时不认识程序或者网页中的中文字

按网上所说尝试如下:

1),在.py文件首行加上#coding=UTF-8

2),在.py文件中加入

import sys
                 var1=sys.getdefaultencoding()

reload(sys)

sys.setdefaultencoding(‘utf8‘)

都未能解决该问题。

最后发现是程序文件本身格式不对,都是ASCAII text 类型的。

检查文件格式命令:

file file_name 或者

 enca -L zh_CN file_name 

只要把这类型的文件格式转换为utf-8 的就可以解决这个问题了。

用pycarm 编辑器修改,如 在 文件中添加一行  s = ‘从从‘  中文,保存,即可转换过来,当然去掉其中的中文,又会回到ASCAII text 类型。

6,如何关停apache 服务

sudo apache2ctl stop

sudo update-rc.d -f apache2 remove 参数-f是强制删除符号链接,即使/etc/init.d/apache2仍然存在。Note:这个命令仅仅禁止该服务,直到该服务被升级。

如果你想在服务升级后仍然保持被禁用。应该执行如下的命令: update-rc.d apache2 stop 80 0 1 2 3 4 5 6.

7, django不能创建数据库中的表的问题

报错:No migrations to apply

第一步:

删除该app名字下的migrations下的__init__.py等文件。

第二步:

进入数据库,找到django_migrations的表,删除该app名字的所有记录。

第三步:执行下面这两条命令:(在项目目录下)

python manage.py makemigrations

python manage.py migrate

原因:

django_migrations表记录着数据库的对应表的修改记录。

每次修改后,都执行第三步的命令,然后在第一步的文件夹下生成修改的文件,django_migrations表记录修改的变更过程。

参考资料:

https://code.ziqiangxuetang.com/django/django-url-name.html

http://www.runoob.com/django/django-tutorial.html

http://www.runoob.com/python/python-tutorial.html

原文地址:https://www.cnblogs.com/huanhuaqingfeng/p/11101751.html

时间: 2024-11-12 05:57:33

开始一个django工程的相关文章

django学习笔记【001】django版本的确定&创建一个django工程

2.3 查看当前的django版本 python3.5 -m django --version 1.10.4 2.3.1 创建一个django工程 django-admin startproject mysite 在创建工程时的一些注意项: 1.程序中所以的命名力求见名知义,这个工程明也一样 2.注意这个工程不要和python中其它的东西重名:如test,django 这个的命名对于工程来说是不合适的. 所谓的django工程(project)只不过是一个在当前目录下的一个子目录,里面包涵了若干

pycharm建立第一个django工程

pycharm建立第一个django工程 系统:win764 ip: 192.168.0.100 安装django pip install django 左上角建立一个名为Firstdjango工程 右上角点击运行 浏览器访问 http://127.0.0.1:8000/ 原文地址:https://www.cnblogs.com/effortsing/p/10394511.html

用PyCharm建Django工程

博主很菜,学了Python这么久,到现在还是在用vim码程序. 在极客上看到讲师用的是PyCharm,于是下载下来尝尝鲜. 1. 下载安装 这是PyCharm的下载页面:http://www.jetbrains.com/pycharm/download/ 下载了一个pycharm-community-4.0.4.tar.gz的包,解压之后.进入pycharm-community-4.0.4目录. $ tar zxf pycharm-community-4.0.4.tar.gz $ cd pych

第一个django

4.创建第一个Django工程 Django环境算是配置完成了,你可以到命令提示符下创建第一个Django应用,进入某个目录,执行django-admin.py startproject myproject来创建一个工程: 这时在myproject目录下有一个文件夹myproject和一个manage.py文件,myproject目录下有4个文件(很重要的4个文件): __init__.py:表明该目录为一个python包 setting.py:项目设置文件 urls.py:URL映射管理 ma

pycharm搭建第一个django项目

用pycharm开发django项目示例 pycharm开发django工程(一) 在pycharm(企业版)中新建Django工程,注意使用虚拟环境 创建成功后,在pycharm显示的工程目录结构如下: 打开pycharm的Terminal,进入该工程的目录新建一个django工程 python3 manage.py startapp django_web 执行成功后,工程目录结构如下: 修改settings.py文件,注册该工程 Django的开发遵循MTV模式(models, templa

最全Pycharm教程(8)——Django工程的创建和管理

最全Pycharm教程(1)——定制外观 最全Pycharm教程(2)——代码风格 最全Pycharm教程(3)——代码的调试.运行 最全Pycharm教程(4)——有关Python解释器的相关配置 最全Pycharm教程(5)——Python快捷键相关设置 最全Pycharm教程(6)——将Pycharm作为Vim编辑器使用 1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备工作 (1)

Django 工程目录结构

你已经配置好你的Heroku账户(译者注:Heroku是一个老牌的免费云空间),并且创建了第一个Heroku应用,让我们来讨论一个非常重要的话题(虽然经常被忽略):Django工程结构管理. 概述 多数Django工程非常混乱.不幸的是默认的Django工程布局并没有对此有任何帮助,它过于简单对工程的管理导致在处理大的工程时带来很多维护性问题. 本文将帮助让你的工程有个合理的布局.致力于: 遵循最佳实践 让你的工程尽可能地直观--你(作为开发者)可以立即认出代码每个部分的作用 让你工程仍然保持规

开始一个django项目

创建一个工程目录: django-admin.py startproject newseite 进入工程目录,运行以下命令,开启服务: python manage.py runserver 接下来,可以通过 http://127.0.0.1:8000/地址访问页面. 可以通过 python manage.py runserver 8080 设置服务监听端口. 如果想要让本地网络访问,可以运行命令: python manage.py runserver 0.0.0.0:8000 开始一个djang

Django工程的建立以及小网站的编写

这篇博文会详细的介绍如何创建django工程,介绍我如何做了第一个网站.本文基于windows7安装了python2.7.12,Django1.8.18(LTS)版.采用的IDE为pycharm.建议安装Django的时候采用pip安装,因为可能自己电脑环境缺少哪个包的话,pip能给你安装完全.命令是 1 pip install django==1.8.18 本文的目的是建立一个小网站,能够在测试过程中随时记录所出现的bug,网站命名为Buglist,根据描述,便知道主要的用途就是和数据库交互,