django 视图中的导入错误?

无礼的

这是我的项目目录

├── feed
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0002_auto_20180722_1431.py
│   │  
│   ├── models.py
│   ├── __pycache__
│   │ 
│   ├── templates
│   │   └── feed
│   │       ├── base.html
│   │       ├── footer.html
│   │       ├── header.html
│   │       ├── hindustantimes.html
│   │       ├── index.html
│   │       ├── ndtv.html
│   │       ├── News_Home.html
│   │       ├── republic.html
│   │       └── tredns.html
│   ├── tests.py
│   ├── twitter
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   └── twitter_credentials.cpython-36.pyc
│   │   ├── trends.py
│   │   ├── tweets.py
│   │   └── twitter_credentials.py
│   ├── urls.py
│   └── views.py
├── __init__.py
├── manage.py
├── os
├── pironews
│   ├── __init__.py
│   |
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── settings.cpython-36.pyc
│   │   ├── urls.cpython-36.pyc
│   │   └── wsgi.cpython-36.pyc
│   ├── settings.py
│   |
│   ├── urls.py
│   └── wsgi.py
└── __pycache__

我想在我的视图中导入 Trends.py 文件:

我在视图文件中执行以下操作

from pironews.feed.twitter.trends import main

def twitter_trend(request):
    output = main()
    print(output)
    return HttpResponse(output, content_type='text/plain')

这是我的trends.py文件

from __future__ import print_function
import sys # used for the storage class
import requests
import pycurl # used for curling
import base64 # used for encoding string
import urllib.parse # used for enconding
from io import StringIO# used for curl buffer grabbing
import io
import re
import json # used for decoding json token
import time # used for stuff to do with the rate limiting
from time import sleep # used for rate limiting
from time import gmtime, strftime # used for gathering time
import twitter_credentials

OAUTH2_TOKEN = 'https://api.twitter.com/oauth2/token'

class Storage:
    def __init__(self):
        self.contents = ''
        self.line = 0

    def store(self, buf):
        self.line = self.line + 1
        self.contents = "%s%i: %s" % (self.contents, self.line, buf)

    def __str__(self):
        return self.contents


def getYear():
    return strftime("%Y", gmtime())

def getMonth():
    return strftime("%m", gmtime())

def getDay():
    return strftime("%d", gmtime())

def getHour():
    return strftime("%H", gmtime())

def getMinute():
    return strftime("%M", gmtime())

def generateFileName():
    return getYear()+"-"+getMonth()+"-"+getDay()+""

# grabs the rate limit remaining from the headers
def grab_rate_limit_remaining(headers):
    limit = ''
    h = str(headers).split('\n')
    for line in h:
        if 'x-rate-limit-remaining:' in line:
            limit = line[28:-1]
    return limit

# grabs the time the rate limit expires
def grab_rate_limit_time(headers):
    x_time = ''
    h = str(headers).split('\n')
    for line in h:
        if 'x-rate-limit-reset:' in line:
            x_time = line[24:-1]
    return x_time

# obtains the bearer token
def get_bearer_token(consumer_key,consumer_secret):
    # enconde consumer key
    consumer_key = urllib.parse.quote(consumer_key)
    # encode consumer secret
    consumer_secret = urllib.parse.quote(consumer_secret)
#   print(type(consumer_secret))
    # create bearer token
    bearer_token = consumer_key+':'+consumer_secret
    # base64 encode the token
    base64_encoded_bearer_token = base64.b64encode(bearer_token.encode('utf-8'))
    # set headers
    headers = {
        "Authorization": "Basic " + base64_encoded_bearer_token.decode('utf-8') + "",
        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
        "Content-Length": "29"}

    response = requests.post(OAUTH2_TOKEN, headers=headers, data={'grant_type': 'client_credentials'})
    to_json = response.json()
    return to_json['access_token']


def grab_a_tweet(bearer_token, tweet_id):
    # url
    url = "https://api.twitter.com/1.1/trends/place.json"
    formed_url ='?id='+tweet_id+'&result_type=popular' #include_entities=true
    headers = [
    str("GET /1.1/statuses/show.json"+formed_url+" HTTP/1.1"),
    str("Host: api.twitter.com"),
    str("User-Agent: jonhurlock Twitter Application-only OAuth App Python v.1"),
    str("Authorization: Bearer "+bearer_token+"")
    ]
    buf = io.BytesIO()
    tweet = ''
    retrieved_headers = Storage()
    pycurl_connect = pycurl.Curl()
    pycurl_connect.setopt(pycurl_connect.URL, url+formed_url) # used to tell which url to go to
    pycurl_connect.setopt(pycurl_connect.WRITEFUNCTION, buf.write) # used for generating output
    pycurl_connect.setopt(pycurl_connect.HTTPHEADER, headers) # sends the customer headers above
    pycurl_connect.setopt(pycurl_connect.HEADERFUNCTION, retrieved_headers.store)
    #pycurl_connect.setopt(pycurl_connect.VERBOSE, True) # used for debugging, really helpful if you want to see what happens
    pycurl_connect.perform() # perform the curl
    tweet += buf.getvalue().decode('UTF-8') # grab the data
    pycurl_connect.close() # stop the curl
    #print retrieved_headers
    pings_left = grab_rate_limit_remaining(retrieved_headers)
    reset_time = grab_rate_limit_time(retrieved_headers)
    current_time = time.mktime(time.gmtime())
    return {'tweet':tweet, '_current_time':current_time, '_reset_time':reset_time, '_pings_left':pings_left}

def main():
    consumer_key = twitter_credentials.CONSUMER_KEY # put your apps consumer key here
    consumer_secret = twitter_credentials.CONSUMER_SECRET # put your apps consumer secret here

    bearer_token = get_bearer_token(consumer_key,consumer_secret)

    tweet = grab_a_tweet(bearer_token,'23424848') # grabs a single tweet & some extra bits
    print(type(tweet['tweet']))
    print(tweet['_current_time'])
    json_obj = json.loads(tweet['tweet'])

    for i in json_obj:
        for j in i['trends']:
            print(j['name'])

但是当我运行服务器时出现以下错误

PiroProject/pironews/feed/views.py", line 20, in <module>
    from pironews.feed.twitter.trends import main
ModuleNotFoundError: No module named 'pironews.feed'

我现在应该怎么办?

阿尔戈

有两件事需要做。

  • 你需要from .trends import main在 twitter 文件夹中的____init___.py 文件中

  • 然后你可以在 view.py 文件中导入 from .twitter import main

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

视图中的Django导入错误-没有名为“ x”的模块

来自分类Dev

在视图中访问Django表单错误消息

来自分类Dev

简单视图中的django语法错误

来自分类Dev

基于类的视图中的 Django 错误消息

来自分类Dev

提交评论按钮时视图中的Django错误

来自分类Dev

从Postgres视图中选择时,Django返回错误结果

来自分类Dev

Django视图中的递归

来自分类Dev

django-导入错误:没有名为视图的模块

来自分类Dev

django-导入错误:没有名为视图的模块

来自分类Dev

Django Rest Framework url 过滤器,导入视图错误

来自分类Dev

视图中的Django POST问题

来自分类Dev

在Django视图中什么是“请求”

来自分类Dev

视图中的Django Choices参考

来自分类Dev

在Django视图中捕获TemplateDoesNotExist

来自分类Dev

在Django视图中组织代码

来自分类Dev

Django:视图中的行为冲突

来自分类Dev

Django:在视图中操作模型

来自分类Dev

在Django视图中按月过滤

来自分类Dev

在Django视图中什么是“请求”

来自分类Dev

在Django视图中分组

来自分类Dev

Django 1.8视图中的循环

来自分类Dev

Django视图中的大量查询

来自分类Dev

在Django视图中设置Cookie

来自分类Dev

django中的导入错误

来自分类Dev

Django Cities导入错误

来自分类Dev

Django 2.1.1 导入错误

来自分类Dev

Django无法导入名称视图

来自分类Dev

由于布尔变量,Django格式错误的字符串出现在视图中

来自分类Dev

我如何使用LoginRequiredMixin在基于类的视图中引发django错误消息?