root@ubuntu:/www# cd mysite1/ root@ubuntu:/www/mysite1# /virtualenvs/venv/bin/python manage.py startapp blog root@ubuntu:/www/mysite1# mkdir static 编辑配置文件 root@ubuntu:/www/mysite1# vim mysite1/settings.py 第一步:进入django项目 cd /www/mysite1/ 第二步:命令测试启动 /virtualenvs/venv/bin/uwsgi --http 0.0.0.0:8000 --file mysite1 --file它的绝对路径是/www/mysite1/mysite1/wsgi.py --static 做一个映射,指定静态文件。 daemonize 进程在后台运行,并将日志打到指定的日志文件 启动django项目 root@ubuntu:~# cd /www/mysite1/ root@ubuntu:/www/mysite1#
# Django settings for mysite2 project. /mysite2# python .. Installed 0 object(s) from 0 fixture(s) root@ubuntu118:/home/python/work/mysite2/mysite2# ll total 32 / root@ubuntu118:/home/python/work/mysite2# cd mysite2 root@ubuntu118:/home/python/work/mysite2/mysite2 /mysite2# root@ubuntu118:/home/python/work/mysite2/mysite2# mysql -u root -p Enter password: Welcome
那么我的访问地址是: http://static.mysite.com/static1/ http://static.mysite.com/static2/ ... 现需求是 我们的kong网关会绑定多个域名的,比如 api.mysite.com、health.mysite.com等,我们需要把静态站点部署到静态资源站点,然后由kong网关直接配置指定站点链接 比如我们静态站点链接是 : http://static.mysite.com/static1/ 而我们的需求是: http://health.mysite.com/path1/index.html http://health.mysite.com 访问 http://health.mysite.com/static1 都会立刻301到 http://static.mysite.com/static1/ 苦恼不已,百思不得其 姐 原因 再看一遍static.mysite.com 解决 只需要保证到达 http://static.mysite.com/static1/ 路径是这样即可 不要 http://static.mysite.com/static1 这种形式。
回到项目根目录,执行以下命令 django-admin startproject mysite 此时项目文件目录如下。 mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py 最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls). 四、启动项目 cd mysite 进入项目目录,执行以下命令,运行项目。
本例中,要创建一个HTML页面,给这个项目取名为mysite。 首先创建一个同名目录“mysite”,并进入到这个目录,然后输入命令git init。 [root@master-node ~]# mkdir mysite [root@master-node ~]# cd mysite [root@master-node mysite]# git init [root@master-node mysite]# git archive --format=tar --prefix=mysite-1.0/ 1.0 |gzip > mysite-1.0.tar.gz [root@master-node mysite]# git archive --format=zip --prefix=mysite-1.0/ 1.0 >mysite-1.0.zip [root@master-node [root@master-node mysite]# ls index.html mysite-1.0.tar.gz mysite-1.0.zip weixin
-http :8000 --module mysite.wsgi module mysite.wsgi:载入特定 wsgi 模块 在浏览器中访问你的服务器,如果出现了网站,说明 uWSGI 可以服务一个 现在,创建一个文件叫做 mysite_nginx.conf,然后把这些放进去(可以复制 default 修改): # mysite_nginx.conf # the upstream component nginx needs to connect to upstream django { # server unix:///path/to/your/mysite/mysite.sock; 编辑 mysite_nginx.conf: server unix:///path/to/your/mysite/mysite.sock; # for a file socket # server mysite.log &
启动命令 首先先看看我的mysite.ini文件内容: [uwsgi] chdir=/data/custom/mysite module=mysite.wsgi:application master=True pidfile=/tmp/project-mysite.pid vacuum=True max-requests=5000 #daemonize=/var/log/uwsgi/project-mysite.log : uwsgi --ini mysite.ini 重启命令 下面命令的pid文件就是我们启动时指定的pid文件。 uwsgi --reload /tmp/project-mysite.pid 停止命令 下面命令的pid文件就是我们启动时指定的pid文件。 uwsgi --stop /tmp/project-mysite.pid 参考:https://uwsgi-docs.readthedocs.io/en/latest/Management.html
:8000 --module mysite.wsgi module mysite.wsgi:载入特定wsgi模块 在浏览器中访问你的服务器,如果出现了网站,说明uWSGI可以服务一个Django应用 现在,创建一个文件叫做mysite_nginx.conf,然后把这些放进去(可以复制default修改): # mysite_nginx.conf# the upstream component nginx needs to connect toupstream django { # server unix:///path/to/your/mysite/mysite.sock; # for a 2、创建一个链接以让nginx发现它: sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/ 编辑 mysite_nginx.conf: server unix:///path/to/your/mysite/mysite.sock; # for a file socket # server 127.0.0.1
apt-get install uwsgi 2 apt-get install nginx (注:如果下载异常出现权限问题,在命令前添加sudo) 4.创建Django项目 例如:项目名为mysite 1 Django-admin startproject mysite 说明:Linux系统内置了python2.7,如果你的Django项目依赖于Python3,请使用pip3 install django 文件(提示权限问题,自行在命令前加上sudo) 1 touch /etc/nginx/mysite.conf 2 vim /etc/nginx/mysite.conf 3.mysite.conf内容如下 引入到nginx.conf下的http配置下 include mysite.conf 5.注释nginx.conf以下配置选项 1 include /etc/nginx/conf.d/*.conf </chdir> 4 <module>mysite.wsgi</module> 5 <processes>4</processes> 6 <daemonize>uwsgi.log
在apache的配置文件/etc/apache2/apache2.conf中增加下面的配置: # Django WSGIScriptAlias / /home/vamei/mysite/mysite/ wsgi.py WSGIPythonPath /home/vamei/mysite <Directory /home/vamei/mysite/mysite> <Files wsgi.py> Order 而/home/ubuntu/mysite/mysite/wsgi.py是Django项目中z自动创建的文件。 这样,当我们访问根URL时,访问请求会经由WSGI接口,传递给Django项目mysite。 /mysite/wsgi.py WSGIPythonPath /home/vamei/mysite <Directory /home/vamei/mysite/mysite/ > <Files wsgi.py
启动 使用下面的命令创建项目: django-admin.py startproject mysite 在当前目录下,将生成mysite文件夹。 其文件树结构如下: mysite ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py 我们需要一个指挥员,将URL对应分配给某个对象处理,这需要在mysite/mysite下的urls.py设定。Python会根据该程序,将URL请求分给某个厨师。 mysite ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py mysite/ ├── manage.py ├── mysite │ ├── __init__.py │ ├── __init__.pyc │ ├── settings.py │ ├──
1 查看model.py文件,具体操作如: root@ubuntu118:/home/python/work/mysite/mysite/blog# vi models.py admin.site.register(BlogPost) 2 查看urls.py文件,具体操作如下: ^Croot@ubuntu118:/home/python/work/mysite /mysite# vi urls.py from django.conf.urls import patterns, include, url #from django.contrib ', name='home'), # url(r'^mysite/', include('mysite.foo.urls')), # Uncomment the include(admin.site.urls)), ) 3 查看setting.py文件,具体操作如下: root@ubuntu118:/home/python/work/mysite
这里安装的是3.1版本 从命令行cd进入要存储代码的目录,然后运行以下命令: $ django-admin startproject mysite 这将mysite在当前目录中创建一个目录。 上面执行的startproject命令创建了以下的目录结构 mysite/ manage.py mysite/ __init__.py settings.py 内部mysite/目录是项目的实际Python包。它的名称是Python包名称,需要使用它来导入其中的任何内容(例如mysite.urls)。 mysite/settings.py:此Django项目的设置/配置 mysite/urls.py:此Django项目的URL声明;Django支持的网站的“目录”。 mysite/asgi.py:与ASGI兼容的Web服务器为项目提供服务的入口点。 mysite/wsgi.py:兼容WSGI的Web服务器为项目提供服务的入口点。
mysite1]# mkdir static #编辑配置文件 [root@localhost mysite1]# vim mysite1/settings.py #允许所有IP,注意:'*'必须用引号包起来 --file它的绝对路径是/www/mysite1/mysite1/wsgi.py --static 做一个映射,指定静态文件。 / # 指定项目的application module=mysite1.mysite1.wsgi:application # 指定sock的文件路径 socket=/www/mysite1/mysite1 /script/uwsgi.log wsgi-file = /www/mysite1/mysite1/wsgi.py 注意: chdir的目录要正确,目录后面要加斜杠 module的配置,要特别小心 mysite1 .mysite1.wsgi这一句表示mysite1项目下的mysite1目录下的wsgi.py文件。
创建Django工程: 命令行创建: $ django-admin startproject mysite 这将会在你的当前目录下生成一个 mysite 目录。 mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py 内层的mysite/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)。 mysite/settings.py:该Django 项目的设置/配置。 mysite/urls.py:该Django项目的URL声明;你的Django站点的“目录”。 创建项目: 命令行创建: 在工程目录下执行 $ python manage.py startapp app01 会在mysite工程下生成 mysite/ app01
之后,我打算将mysite这个站点,在端口8888下运行。 sudo vim mysite 添加如下配置: <VirtualHost *:8888> DocumentRoot /var/www/mysite/mysite <Directory DocumentRoot /var/www/mysite/mysite <Directory /var/www/mysite/mysite> Order allow,deny > 最后在/var/www/mysite/mysite/wsgi.py中添加如下代码: import sys sys.path.append("/var/www/mysite/") 将网站目录添加到环境变量 激活我新建的mysite网站,执行如下命令: sudo a2ensite mysite #其中mysite就是sites-available中新建的那个配置文件的名称 重新加载网站: sudo service
等待一段时间后就自动建立好的项目了,接着进入mysite项目中创建app : # cd mysite 创建app : # python manage.py startapp blog *** </body> *** 接着配置django的url路由 进入mysite目录 : # cd /data/wwwroot/mysite/mysite 打开urls.py 文件 项目下 : # cd /data/wwwroot/mysite 创建mysite.xml文件 : # vi mysite.xml *** <uwsgi> <socket>127.0.0.1: ; uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; } location /static/ { alias /data/wwwroot/mysite/ /nginx 如果没有任何提示就表示启动成功了 *** 访问项目的页面 进入Django项目目录 : # cd /data/wwwroot/mysite/ : # uwsgi -x mysite.xml
创建项目 django-admin startproject 项目名称 $ django-admin startproject mysite $ ls mysite/ manage.py* mysite / 可以看到已经创建好了mysite项目目录。 可以看到项目已经自动创建了不少目录了,其中里面存在了一个mysite的文件夹。 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls). mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
默认的基本结构 一个全新的 Django 项目结构默认情况下如下所示 Text only mysite/ |-- mysite/ | |-- __init__.py | |-- settings.py | |-- urls.py | +-- wsgi.py +-- manage.py 我们在mysite目录中创建一个叫做settings的目录, 然后将原有的settings.py移动到 Text only mysite/ |-- mysite/ | |-- __init__.py | |-- settings/ <-- | | |-- _ 常见的用例有 ci.py development.py production.py staging.py 然后文件结构应该和下面类似: Text only mysite/ |-- mysite/ | ' WSGI_APPLICATION = 'mysite.wsgi.application' 为了保证实例简单, 我删除其他无效的代码 然后创建development.py配置文件, 我可以直接通过
如果没有安装,Ubuntu下安装命令: sudo apt-get install sqlite3 2.创建博客模块app 右键项目mysite ——》 Django ——》 Create application 25, 2013 - 05:20:34 Django version 1.6, using settings 'mysite.settings' Starting development server /src/mysite,修改mysite.setting.py # Application definition INSTALLED_APPS = ( 'django.contrib.admin /src/mysite,修改mysite.urls.py from django.conf.urls import patterns, include, url from django.contrib 6.同步数据库 右键项目mysite ——》 Django ——》 Sync DB(Manage.py syncdb),出现如下界面: ?